7 research outputs found

    On a New Notion of Partial Refinement

    Full text link
    Formal specification techniques allow expressing idealized specifications, which abstract from restrictions that may arise in implementations. However, partial implementations are universal in software development due to practical limitations. Our goal is to contribute to a method of program refinement that allows for partial implementations. For programs with a normal and an exceptional exit, we propose a new notion of partial refinement which allows an implementation to terminate exceptionally if the desired results cannot be achieved, provided the initial state is maintained. Partial refinement leads to a systematic method of developing programs with exception handling.Comment: In Proceedings Refine 2013, arXiv:1305.563

    A refinement calculus for nondeterministic expressions

    Get PDF

    Construction informatics - Issues in engineering, computer science and ontology

    Get PDF

    The Lattice of Data Refinement

    No full text
    We define a very general notion of data refinement which comprises the traditional notion of data refinement as a special case. Using the concepts of duals and adjoints we define converse commands and a find a symmetry between ordinary data refinement and a dual (backward) data refinement. We show how ordinary and backward data refinement are interpreted as simulation and we derive rules for the piecewise data refinement of programs. Our results are valid for a general language, covering demonic and angelic nondeterminism as well as nontermination and miracles. 1 Introduction Data refinement is the systematic replacement of a data structure by another one in a refinement step, an idea first described formally by Hoare [13]. In program development, data refinement is a powerful method for transforming a specification into an implementable program. In this paper, we consider data refinement in the setting of the refinement calculus. This calculus is based on Dijkstra's weakest precondi..
    corecore