
Specification and Transformation of Programs
A Formal Approach to Software Development
Helmut A. Partsch(Author)
Springer (Publisher)
Published on 5. July 1990
Book
Hardback
XIII, 493 pages
978-3-540-52356-7 (ISBN)
Description
"Specification and transformation of programs" is short for a methodology of software development where, from a formal specification of a problem to be solved, programs correctly solving that problem are constructed by stepwise application of formal, semantics-preserving transformation rules. The approach considers programming as a formal activity. Consequently, it requires some mathematical maturity and, above all, the will to try something new. A somewhat experienced programmer or a third- or fourth-year student in computer science should be able to master most of this material - at least, this is the level I have aimed at. This book is primarily intended as a general introductory textbook on transformational methodology. As with any methodology, reading and understanding is necessary but not sufficient. Therefore, most of the chapters contain a set of exercises for practising as homework. Solutions to these exercises exist and can, in principle, be obtained at nominal cost from the author upon request on appropriate letterhead. In addition, the book also can be seen as a comprehensive account of the particular transformational methodology developed within the Munich CIP project.
More details
Series
Edition
1990 ed.
Language
English
Place of publication
Berlin
Germany
Publishing group
Springer Berlin
Target group
Primary & secondary/elementary & high school
Graduate
Illustrations
XIII, 493 p.
Dimensions
Height: 260 mm
Width: 183 mm
Thickness: 33 mm
Weight
1157 gr
ISBN-13
978-3-540-52356-7 (9783540523567)
DOI
10.1007/978-3-642-61512-2
Schweitzer Classification
Other editions
Additional editions

Helmut A. Partsch
Specification and Transformation of Programs
A Formal Approach to Software Development
E-Book
12/2012
Springer
€53.49
Available for download

Helmut A. Partsch
Specification and Transformation of Programs
A Formal Approach to Software Development
Book
07/1990
Springer
€53.49
Shipment within 7-9 days
Content
1. Introduction.- 1.1 Software Engineering.- 1.2 The Problematics of Software Development.- 1.3 Formal Specification and Program Transformation.- 1.4 Our Particular View of Transformational Programming.- 1.5 Relation to Other Approaches to Programming Methodology.- 1.6 An Introductory Example.- 2. Requirements Engineering.- 2.1 Introduction.- 2.2 Some Formalisms Used in Requirements Engineering.- 3. Formal Problem Specification.- 3.1 Specification and Formal Specification.- 3.2 The Process of Formalization.- 3.3 Definition of Object Classes and Their Basic Operations.- 3.4 Additional Language Constructs for Formal Specifications.- 3.5 Structuring and Modularization.- 3.6 Examples.- 3.7 Exercises.- 4. Basic Transformation Techniques.- 4.1 Semantic Foundations.- 4.2 Notational Conventions.- 4.3 The Unfold/Fold System.- 4.4 Further Basic Transformation Rules.- 4.5 Sample Developments with Basic Rules.- 4.6 Exercises.- 5. From Descriptive Specifications to Operational Ones.- 5.1 Transforming Specifications.- 5.2 Embedding.- 5.3 Development of Recursive Solutions from Problem Descriptions.- 5.4 Elimination of Descriptive Constructs in Applicative Programs.- 5.5 Examples.- 5.6 Exercises.- 6. Modification of Applicative Programs.- 6.1 Merging of Computations.- 6.2 Inverting the Flow of Computation.- 6.3 Storing of Values Instead of Recomputation.- 6.4 Computation in Advance.- 6.5 Simplification of Recursion.- 6.6 Examples.- 6.7 Exercises.- 7. Transformation of Procedural Programs.- 7.1 From Tail Recursion to Iteration.- 7.2 Simplification of Imperative Programs.- 7.3 Examples.- 7.4 Exercises.- 8. Transformation of Data Structures.- 8.1 Implementation of Types in Terms of Other Types.- 8.2 Implementations of Types for Specific Environments.- 8.3 Libraries of Implementations.- 8.4 Transformation of Type Systems.- 8.5 Joint Development.- 8.6 An Example: Cycles in a Graph.- 8.7 Exercises.- 9. Complete Examples.- 9.1 Warshall's Algorithm.- 9.2 The Majority Problem.- 9.3 Fast Pattern Matching According to Boyer and Moore.- 9.4 A Text Editor.- References.