Refinement Calculus
The refinement calculus is a formalized approach to stepwise refinement for program construction. The required behaviour of the final executable program is specified as an abstract and perhaps non-executable "program", which is then refined by a series of correctness-preserving transformations into an efficiently executable program. Proponents include Ralph-Johan Back, who originated the approach in his 1978 PhD thesis ''On the Correctness of Refinement Steps in Program Development'', and Carroll Morgan, especially with his book Programming from Specifications' (Prentice Hall, 2nd edition, 1994, ). In the latter case, the motivation was to link Abrial's specification notation Z, via a rigorous relation of behaviour-preserving program refinement Refinement is a generic term of computer science that encompasses various approaches for producing correct computer programs and simplifying existing programs to enable their formal verification. Program refinement In formal methods, ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Program Refinement
Refinement is a generic term of computer science that encompasses various approaches for producing correct computer programs and simplifying existing programs to enable their formal verification. Program refinement In formal methods, program refinement is the verifiable transformation of an ''abstract'' (high-level) formal specification into a ''concrete'' (low-level) executable program. '' Stepwise refinement'' allows this process to be done in stages. Logically, refinement normally involves implication, but there can be additional complications. The progressive just-in-time preparation of the product backlog (requirements list) in agile software development approaches, such as Scrum, is also commonly described as refinement. Data refinement Data refinement is used to convert an abstract data model (in terms of sets for example) into implementable data structures (such as arrays). Operation refinement converts a specification of an operation on a system into an implementab ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Ralph-Johan Back
Ralph-Johan Back is a Finnish computer scientist. Back originated the refinement calculus, an important approach to the formal development of programs using stepwise refinement, in his 1978 PhD thesis at the University of Helsinki, ''On the Correctness of Refinement Steps in Program Development''. He has undertaken much subsequent research in this area. He has held positions at CWI Amsterdam, the Academy of Finland and the University of Tampere. Since 1983, he has been Professor of Computer Science at the Åbo Akademi University in Turku. For 2002–2007, he was an Academy Professor at the Academy of Finland. He is Director of CREST (Center for Reliable Software Technology) at Åbo Akademi. Back is a member of Academia Europaea The Academia Europaea is a pan-European Academy of humanities, letters, law, and sciences. The Academia was founded in 1988 as a functioning Europe-wide Academy that encompasses all fields of scholarly inquiry. It acts as co-ordinator of Europ ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Carroll Morgan (academic)
Charles ''Carroll'' Morgan (born 1952) is an American computer scientist who moved to Australia in his early teens. He completed his education there (high school, university, several years in industry), including a Doctor of Philosophy (Ph.D.) degree from the University of Sydney, and then moved to the United Kingdom in the early 1980s. In 2000, he returned to Australia. During the 1980s and 1990s, Morgan was based at the Oxford University Computing Laboratory in England as a researcher and lecturer working in the area of formal methods, and was a Fellow of Pembroke College. Having been influenced by the Z notation of Jean-Raymond Abrial, he authored ''Programming from Specifications'' as an attempt to combine the high-level specification aspects of Z, with the rigorous computer program derivation methods of Edsger W. Dijkstra. His treatment concentrated on elementary program constructs to make the material accessible to undergraduates in their early years. Some of the ideas ther ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Jean-Raymond Abrial
Jean-Raymond Abrial (6 November 1938 – 26 May 2025) was a French computer scientist and inventor of the Z and B formal methods. Abrial was a student at the École Polytechnique (class of 1958). Abrial's 1974 paper ''Data Semantics'' laid the foundation for a formal approach to Data Models; although not adopted directly by practitioners, it directly influenced all subsequent models from the Entity-Relationship Model through to RDF. J.-R. Abrial is the father of the Z notation (typically used for formal specification of software), during his time at the Programming Research Group under Prof. Tony Hoare within the Oxford University Computing Laboratory (now Oxford University Department of Computer Science), arriving in 1979 and sharing an office and collaborating with Cliff Jones. He later initiated the B-Method, with better tool-based software development support for refinement from a high-level specification to an executable program, including the Rodin tool. These ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Z Notation
The Z notation is a formal specification language used for describing and modelling computing systems. It is targeted at the clear specification of computer programs and computer-based systems in general. History In 1974, Jean-Raymond Abrial published "Data Semantics". He used a notation that would later be taught in the University of Grenoble until the end of the 1980s. While at EDF ( Électricité de France), working with Bertrand Meyer, Abrial also worked on developing Z. The Z notation is used in the 1980 book ''Méthodes de programmation''. Z was originally proposed by Abrial in 1977 with the help of Steve Schuman and Bertrand Meyer. It was developed further at the Programming Research Group at Oxford University, where Abrial worked in the early 1980s, having arrived at Oxford in September 1979. Abrial has said that Z is so named "Because it is the ultimate language!" although the name " Zermelo" is also associated with the Z notation through its use of Zermelo–Frae ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Guarded Commands
The Guarded Command Language (GCL) is a programming language defined by Edsger Dijkstra for predicate transformer semantics in EWD472. It combines programming concepts in a compact way. It makes it easier to develop a program and its proof hand-in-hand, with the proof ideas leading the way; moreover, parts of a program can actually be ''calculated''. An important property of GCL is nondeterminism. For example, in the if-statement, several alternatives may be true, and the choice is made at runtime, when the if-statement is executed. This frees the programmer from having to make unnecessary choices and is an aid in the formal development of programs. GCL includes the multiple assignment statement. For example, execution of the statement is done by first evaluating the righthand side values and then storing them in the lefthand variables. Thus, this statement swaps the values of and . The following books discuss the development of programs using GCL: * * * * * Guarded command ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Hoare Triple
Hoare logic (also known as Floyd–Hoare logic or Hoare rules) is a formal system with a set of logical rules for reasoning rigorously about the correctness of computer programs. It was proposed in 1969 by the British computer scientist and logician Tony Hoare, and subsequently refined by Hoare and other researchers. The original ideas were seeded by the work of Robert W. Floyd, who had published a similar system for flowcharts. Hoare triple The central feature of Hoare logic is the Hoare triple. A triple describes how the execution of a piece of code changes the state of the computation. A Hoare triple is of the form : \ C \ where P and Q are '' assertions'' and C is a ''command''.Hoare originally wrote "P\Q" rather than "\C\". P is named the ''precondition'' and Q the ''postcondition'': when the precondition is met, executing the command establishes the postcondition. Assertions are formulae in predicate logic. Hoare logic provides axioms and inference rules for all the c ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Formal Methods
In computer science, formal methods are mathematics, mathematically rigorous techniques for the formal specification, specification, development, Program analysis, analysis, and formal verification, verification of software and computer hardware, hardware systems. The use of formal methods for software and hardware design is motivated by the expectation that, as in other engineering disciplines, performing appropriate mathematical analysis can contribute to the reliability and robustness of a design. Formal methods employ a variety of theoretical computer science fundamentals, including logic in computer science, logic calculi, formal languages, automata theory, control theory, program semantics, type systems, and type theory. Uses Formal methods can be applied at various points through the software development process, development process. Specification Formal methods may be used to give a formal description of the system to be developed, at whatever level of detail desired. F ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Formal Specification Languages
Formal, formality, informal or informality imply the complying with, or not complying with, some set of requirements ( forms, in Ancient Greek). They may refer to: Dress code and events * Formal wear, attire for formal events * Semi-formal attire, attire for semi-formal events * Informal attire, more controlled attire than casual but less than formal * Formal (university), official university dinner, ball or other event * School formal, official school dinner, ball or other event Logic and mathematics *Formal logic, or symbolic logic ** Informal logic, the complement, whose definition and scope is contentious *Formal fallacy, reasoning of invalid structure ** Informal fallacy, the complement *Informal mathematics, also called naïve mathematics *Formal cause, Aristotle's intrinsic, determining cause *Formal power series, a generalization of power series without requiring convergence, used in combinatorics * Formal calculation, a calculation which is systematic, but without a ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |