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.
Les mer
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.
Les mer
1 Introducing Top-down Design.- 1.1 The Idea of Top-down Design.- 1.2 An Example: The Greatest Common divisor.- 1.3 Programming Language and Machine Language.- 2 Basic Compositions of Actions and Their Proof Rules.- 2.1 Relations for Program Correctness.- 2.2 Logical Formulas and Pascal Expressions.- 2.3 Proof Rules for Simple Statements.- 2.4 Compound and Conditional Statements.- 2.5 Repetitive Statements.- 2.6 Summary of Basic Proof Rules.- 2.7 Using the Basic Proof Rules.- 2.8 Correct Termination of Algorithms.- Exercises.- 3 Data Types.- 3.1 Introduction.- 3.2 A Primer on Set Theory.- 3.3 Scalar Types and Simple Types.- 3.4 Arrays, Records, and Files.- 3.5 Processing Arrays.- 3.6 Processing Files and Records.- 3.7 Set Manipulation in Pascal.- Exercises.- 4 Developing Programs with Proofs of Correctness.- 4.1 Introduction.- 4.2 Squares and Palindromes.- 4.3 Sorting Arrays and Files.- 4.4 Manipulating Sets.- Exercises.- 5 Procedures and Functions.- 5.1 Procedures and Functions.- 5.3 Functions and Their Proof of Correctness.- 5.4 Proofs of Correctness of Procedures.- Exercises.- 6 Recursion.- 6.1 Introduction.- 6.2 Design and Correctness of Recursive Procedures.- 6.3 Recursive Data Types.- 6.4 Recursive Algorithms and Recursive Data Structures.- Exercises.- 7 Programming with and without Gotos.- 7.1 Goto Statements.- 7.2 Proof Rules for Gotos.- 7.3 Return Exits and the Algorithm Find.- 7.4 Failure Exits and the Algorithm Lookup.- 7.5 Loops with Exits in the Middle.- Exercises.- References.- Appendixes.- Index of Algorithms.- Author Index.
Les mer
Springer Book Archives
Springer Book Archives

Produktdetaljer

ISBN
9781461262749
Publisert
2011-10-23
Utgiver
Vendor
Springer-Verlag New York Inc.
Høyde
235 mm
Bredde
155 mm
Aldersnivå
Graduate, P, 06
Språk
Product language
Engelsk
Format
Product format
Heftet