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.

On the Refinement Calculus

On the Refinement Calculus
Author: Carroll Morgan
Publisher: Springer Science & Business Media
Total Pages: 169
Release: 2012-12-06
Genre: Mathematics
ISBN: 1447132734

On the Refinement Calculus gives one view of the development of the refinement calculus and its attempt to bring together - among other things - Z specifications and Dijkstra's programming language. It is an excellent source of reference material for all those seeking the background and mathematical underpinnings of the refinement calculus.

Mathematics of Program Construction

Mathematics of Program Construction
Author: Bernhard Möller
Publisher: Springer Science & Business Media
Total Pages: 488
Release: 1995-07-10
Genre: Computers
ISBN: 9783540601173

This volume constitutes the proceedings of the Third International Conference on the Mathematics of Program Construction, held at Kloster Irsee, Germany in July 1995. Besides five invited lectures by distinguished researchers there are presented 19 full revised papers selected from a total of 58 submissions. The general theme is the use of crisp, clear mathematics in the discovery and design of algorithms and in the development of corresponding software and hardware; among the topics addressed are program transformation, program analysis, program verification, as well as convincing case studies.

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.

4th Refinement Workshop

4th Refinement Workshop
Author: Joseph M. Morris
Publisher: Springer Science & Business Media
Total Pages: 488
Release: 2013-03-14
Genre: Mathematics
ISBN: 1447137566

This volume contains the proceedings ofthe 4th Refinement Workshop which was organised by the British Computer Society specialist group in Formal Aspects of Computing Science and held in Wolfson College, Cambridge, on 9-11 January, 1991. The term refinement embraces the theory and practice of using formal methods for specifying and implementing hardware and software. Most of the achievements to date in the field have been in developing the theoretical framework for mathematical approaches to programming, and on the practical side in formally specifying software, while more recently we have seen the development of practical approaches to deriving programs from their speCifications. The workshop gives a fair picture of the state of the art: it presents new theories for reasoning about software and hardware and case studies in applying known theory to interesting small-and medium-scale problems. We hope the book will be Of interest both to researchers in formal methods, and to software engineers in industry who want to keep abreast of possible applications of formal methods in industry. The programme consisted both of invited talks and refereed papers. The invited speakers were Ib S0rensen, Jean-Raymond Abrial, Donald MacKenzie, Ralph Back, Robert Milne, Mike Read, Mike Gordon, and Robert Worden who gave the introductory talk. This is the first refinement workshop that solicited papers for refereeing, and despite a rather late call for papers the response was excellent.

The Design of Well-Structured and Correct Programs

The Design of Well-Structured and Correct Programs
Author: Suad Alagic
Publisher: Springer Science & Business Media
Total Pages: 303
Release: 2013-11-11
Genre: Computers
ISBN: 1461262720

The major goal of this book is to present the techniques of top-down program design and verification of program correctness hand-in-hand. It thus aims to give readers a new way of looking at algorithms and their design, synthesizing ten years of research in the process. It provides many examples of program and proof development with the aid of a formal and informal treatment of Hoare's method of invariants. Modem widely accepted control structures and data structures are explained in detail, together with their formal definitions, as a basis for their use in the design of correct algorithms. We provide and apply proof rules for a wide range of program structures, including conditionals, loops, procedures and recur sion. We analyze situations in which the restricted use of gotos can be justified, providing a new approach to proof rules for such situations. We study several important techniques of data structuring, including arrays, files, records and linked structures. The secondary goal of this book is to teach the reader how to use the programming language Pascal. This is the first text to teach Pascal pro gramming in a fashion which not only includes advanced algorithms which operate on advanced data structures, but also provides the full axiomatic definition of Pascal due to Wirth and Hoare. Our approach to the language is very different from that of a conventional programming text.

TAPSOFT '89. Proceedings of the International Joint Conference on Theory and Practice of Software Development Barcelona, Spain, March 13-17, 1989

TAPSOFT '89. Proceedings of the International Joint Conference on Theory and Practice of Software Development Barcelona, Spain, March 13-17, 1989
Author: Josep Diaz
Publisher: Springer Science & Business Media
Total Pages: 402
Release: 1989-02-27
Genre: Computers
ISBN: 9783540509400

TAPSOFT '89 is the Third International Joint Conference on Theory and Practice of Software Development held in Barcelona, Spain, March 13-17, 1989. The conference consissted of three parts: - Advanced Seminar on Foundations of Innovative Software Development - Colloquium on Trees in Algebra and Programming (CAAP '89) - Colloquium on Current Issues in Programming Languages (CCIPL) The TAPSOFT '89 Conference Proceedings are published in two volumes. The first volume includes the papers from CAAP plus the more theoretical ones of the invited papers. The second volume comprises the papers from CCIPL and the invited papers more relevant to current issues in programming languages.

Formal Methods: Foundations and Applications

Formal Methods: Foundations and Applications
Author: Jim Davies
Publisher: Springer Science & Business Media
Total Pages: 299
Release: 2011-03-23
Genre: Computers
ISBN: 3642198287

This book constitutes the thoroughly refereed post-conference proceedings of the 13th Brazilian Symposium on Formal Methods, SBMF 2010, held in Natal, Brazil, in November 2010. The 18 revised full papers were carefully reviewed and selected from 55 submissions. The papers presented cover a broad range of foundational and methodological issues in formal methods for the design and analysis of software and hardware systems as well as applications in various domains.

The Correctness-by-Construction Approach to Programming

The Correctness-by-Construction Approach to Programming
Author: Derrick G. Kourie
Publisher: Springer Science & Business Media
Total Pages: 273
Release: 2012-04-10
Genre: Computers
ISBN: 3642279198

The focus of this book is on bridging the gap between two extreme methods for developing software. On the one hand, there are texts and approaches that are so formal that they scare off all but the most dedicated theoretical computer scientists. On the other, there are some who believe that any measure of formality is a waste of time, resulting in software that is developed by following gut feelings and intuitions. Kourie and Watson advocate an approach known as “correctness-by-construction,” a technique to derive algorithms that relies on formal theory, but that requires such theory to be deployed in a very systematic and pragmatic way. First they provide the key theoretical background (like first-order predicate logic or refinement laws) that is needed to understand and apply the method. They then detail a series of graded examples ranging from binary search to lattice cover graph construction and finite automata minimization in order to show how it can be applied to increasingly complex algorithmic problems. The principal purpose of this book is to change the way software developers approach their task at programming-in-the-small level, with a view to improving code quality. Thus it coheres with both the IEEE’s Guide to the Software Engineering Body of Knowledge (SWEBOK) recommendations, which identifies themes covered in this book as part of the software engineer’s arsenal of tools and methods, and with the goals of the Software Engineering Method and Theory (SEMAT) initiative, which aims to “refound software engineering based on a solid theory.”

Mathematics of Program Construction

Mathematics of Program Construction
Author: Jan L.A. van de Snepscheut
Publisher: Springer Science & Business Media
Total Pages: 436
Release: 1989-06-07
Genre: Computers
ISBN: 9783540513056

The papers included in this volume were presented at the Conference on Mathematics of Program Construction held from June 26 to 30, 1989. The conference was organized by the Department of Computing Science, Groningen University, The Netherlands, at the occasion of the University's 375th anniversary. The creative inspiration of the modern computer has led to the development of new mathematics, the mathematics of program construction. Initially concerned with the posterior verification of computer programs, the mathematics have now matured to the point where they are actively being used for the discovery of elegant solutions to new programming problems. Initially concerned specifically with imperative programming, the application of mathematical methodologies is now established as an essential part of all programming paradigms - functional, logic and object-oriented programming, modularity and type structure etc. Initially concerned with software only, the mathematics are also finding fruit in hardware design so that the traditional boundaries between the two disciplines have become blurred. The varieties of mathematics of program construction are wide-ranging. They include calculi for the specification of sequential and concurrent programs, program transformation and analysis methodologies, and formal inference systems for the construction and analysis of programs. The mathematics of specification, implementation and analysis have become indispensable tools for practical programming.