Program Development by Refinement

Program Development by Refinement
Author: Emil Sekerinski
Publisher: Springer Science & Business Media
Total Pages: 352
Release: 2012-12-06
Genre: Computers
ISBN: 1447105850

The Idea of Program Refinement Programs are complex. They are typically so complex, that they go beyond the full comprehension even of the programmer or team who designed them, with all the consequences this has. How can we cope with such complexity in a satisfactory way? An approach, advocated for a long time, is to separate a concise specification of a program - the "what" - from a possibly involved implementation - the "how". Once a specification is obtained from the set of requirements on the program, there can still be a large gap to an efficient implementation. The development from specification to implementation can then proceed by a succession oflayers, such that each layer is a refinement of the previous one. Design decisions can be introduced in refinement steps one at a time. By this, the refinement steps can be kept small and manageable. Still, the set of all requirements can be far too large to be taken completely into account in the initial specification. Even if they could, they might obscure issues more than clarify them. For example: • An information system for stored goods needs to produce an error message on il legal input. Yet, the exact wording - and even the language - of those messages is irrelevant for an understanding of the essence of the system. • A banking application interacts with customers with a graphical interface. Yet the specification of the graphical layout is secondary compared to the specification of the possible transactions.

Program Development in Computational Logic

Program Development in Computational Logic
Author: Maurice Bruynooghe
Publisher: Springer Science & Business Media
Total Pages: 546
Release: 2004-06-17
Genre: Computers
ISBN: 3540221522

1 The tenth anniversary of the LOPSTR symposium provided the incentive for this volume. LOPSTR started in 1991 as a workshop on logic program synthesis and transformation, but later it broadened its scope to logic-based program development in general, that is, program development in computational logic, and hence the title of this volume. The motivating force behind LOPSTR has been the belief that declarative paradigms such as logic programming are better suited to program development tasks than traditional non-declarative ones such as the imperative paradigm. Speci?cation, synthesis, transformation or specialization, analysis, debugging and veri?cation can all be given logical foundations, thus providing a unifying framework for the whole development process. In the past 10 years or so, such a theoretical framework has indeed begun to emerge. Even tools have been implemented for analysis, veri?cation and speci- ization. However,itisfairtosaythatsofarthefocushaslargelybeenonprogrammi- in-the-small. So the future challenge is to apply or extend these techniques to programming-in-the-large, in order to tackle software engineering in the real world. Returning to this volume, our aim is to present a collection of papers that re?ect signi?cant research e?orts over the past 10 years. These papers cover the wholedevelopmentprocess:speci?cation,synthesis,analysis,transformationand specialization, as well as semantics and systems.

A Theory and Practice of Program Development

A Theory and Practice of Program Development
Author: Derek J. Andrews
Publisher: Springer Science & Business Media
Total Pages: 421
Release: 2012-12-06
Genre: Mathematics
ISBN: 1447109872

A Theory and Practice of Program Development provides a comprehensive introduction to a software development method based on VDM-SL. Each development step is rigorously justified, and the strategies and transformations used are justified and explained ma thematically. The approach provides the formal semantics of a simple, but powerful, wide-spectrum programming language and gives a formal definition of both algorithmic and data refinement. Unlike other texts, it covers both the theory and practice of program development. Although based on VDM-SL, no knowledge of this language is assumed, thus making it widely accessible. A Theory and Practice of Program Development is intended for 3rd/4th year undergraduate and postgraduate students taking formal methods and software engineering; software developers involved in the production of provably correct computer systems and reusa ble design and the problems of reusable code.

Program Development by Specification and Transformation

Program Development by Specification and Transformation
Author: Bernd Krieg-Brückner
Publisher: Springer Science & Business Media
Total Pages: 650
Release: 1993-08-30
Genre: Computers
ISBN: 9783540567332

This volume gives a coherent presentation of the outcome of the project PROSPECTRA (PROgram development by SPECification and TRAnsformation) that aims to provide a rigorous methodology for developing correct software and a comprehensive support system. The results are substantial: a theoretically well-founded methodology covering the whole development cycle, a very high-level specification and transformation language family allowing meta-program development and formalization of the development process itself, and a prototype development system supporting structure editing, incremental static-semantic checking, interactive context-sensitivetransformation and verification, development of transformation (meta-) programs, version management, and so on, with an initial libraryof specifications and a sizeable collection of implemented transformations. The intended audience for this documentation is the academic community working in this and related areas and those members of the industrial community interested in the use of formal methods.

A Practical Theory of Programming

A Practical Theory of Programming
Author: Eric C.R. Hehner
Publisher: Springer Science & Business Media
Total Pages: 257
Release: 2012-09-08
Genre: Computers
ISBN: 1441985964

There are several theories of programming. The first usable theory, often called "Hoare's Logic", is still probably the most widely known. In it, a specification is a pair of predicates: a precondition and postcondition (these and all technical terms will be defined in due course). Another popular and closely related theory by Dijkstra uses the weakest precondition predicate transformer, which is a function from programs and postconditions to preconditions. lones's Vienna Development Method has been used to advantage in some industries; in it, a specification is a pair of predicates (as in Hoare's Logic), but the second predicate is a relation. Temporal Logic is yet another formalism that introduces some special operators and quantifiers to describe some aspects of computation. The theory in this book is simpler than any of those just mentioned. In it, a specification is just a boolean expression. Refinement is just ordinary implication. This theory is also more general than those just mentioned, applying to both terminating and nonterminating computation, to both sequential and parallel computation, to both stand-alone and interactive computation. And it includes time bounds, both for algorithm classification and for tightly constrained real-time applications.

Programming from Specifications

Programming from Specifications
Author: Carroll Morgan
Publisher:
Total Pages: 360
Release: 1994
Genre: Computers
ISBN:

Providing a thorough treatment of most elementary program development techniques, this revised edition covers topics such as procedures, parameters, recursion and data refinement, with the integration of specification, development and coding, based on ordinary (classical) logic.

Refinement Techniques in Software Engineering

Refinement Techniques in Software Engineering
Author: Ana Cavalcanti
Publisher: Springer
Total Pages: 402
Release: 2006-10-11
Genre: Computers
ISBN: 3540462546

This tutorial book presents an augmented selection of the material presented at the First Pernambuco Summer School on Software Engineering, PSSE 2004, held in Receife, Brazil in November/December 2004, jointly with the Brazilian Symposium on Formal Methods (SBMF 2004). The seven tutorial lectures presented are the thoroughly revised versions of the contributions from the invited lecturers. The courses cover a wide spectrum of topics.

Stepwise Refinement of Distributed Systems

Stepwise Refinement of Distributed Systems
Author: Jaco W. de Bakker
Publisher: Springer Science & Business Media
Total Pages: 832
Release: 1990-04-25
Genre: Computers
ISBN: 9783540525592

The stepwise refinement method postulates a system construction route that starts with a high-level specification, goes through a number of provably correct development steps, and ends with an executable program. The contributions to this volume survey the state of the art in this extremely active research area. The world's leading specialists in concurrent program specification, verification, and the theory of their refinement present latest research results and surveys of the fields. State-based, algebraic, temporal logic oriented and category theory oriented approaches are presented. Special attention is paid to the relationship between compositionality and refinement for distributed programs. Surveys are given of results on refinement in partial-order based approaches to concurrency. A unified treatment is given of the assumption/commitment paradigm in compositional concurrent program specification and verification, and the extension of these to liveness properties. Latest results are presented on specifying and proving concurrent data bases correct, and deriving network protocols from their specifications.

Theories of Programming and Formal Methods

Theories of Programming and Formal Methods
Author: Jonathan P. Bowen
Publisher: Springer Nature
Total Pages: 417
Release: 2023-09-07
Genre: Computers
ISBN: 303140436X

This Festschrift volume, dedicated to Jifeng He on the occasion of his 80th birthday, includes refereed papers by leading researchers, many of them current and former colleagues, presented at a dedicated celebration in the Shanghai Science Hall in September 2023. Jifeng was an important researcher on the European ESPRIT ProCoS project and the Working Group on Provably Correct Systems, subsequently he collaborated with Tony Hoare on Unifying Theories of Programming. Jifeng returned to China in 1998, first to the United Nations University in Macau and then to the East China Normal University in Shanghai. He has since founded an Artificial Intelligence research institute that focuses on the application of technology in large-scale industrial software systems. His scientific contributions have been recognized through his election to membership of the Chinese Academy of Sciences. The first paper in the volume provides an overview of Jifeng’s research contributions, especially in the area of formal methods, and the following two papers detail developments in UTP and rCOS (refinement calculus of object systems). In the next two sections of the book, the editors included papers by colleagues and coauthors of Jifeng while he was at the University of Oxford and engaged with the European ProCoS project. The section that follows includes papers authored by colleagues from his later research in China and Europe. The final section includes a paper related to Jifeng’s recent roadmap for UTP.