The design of well-structured and correct programs
著者
書誌事項
The design of well-structured and correct programs
(Texts and monographs in computer science)
Springer-Verlag, c1978
大学図書館所蔵 全65件
  青森
  岩手
  宮城
  秋田
  山形
  福島
  茨城
  栃木
  群馬
  埼玉
  千葉
  東京
  神奈川
  新潟
  富山
  石川
  福井
  山梨
  長野
  岐阜
  静岡
  愛知
  三重
  滋賀
  京都
  大阪
  兵庫
  奈良
  和歌山
  鳥取
  島根
  岡山
  広島
  山口
  徳島
  香川
  愛媛
  高知
  福岡
  佐賀
  長崎
  熊本
  大分
  宮崎
  鹿児島
  沖縄
  韓国
  中国
  タイ
  イギリス
  ドイツ
  スイス
  フランス
  ベルギー
  オランダ
  スウェーデン
  ノルウェー
  アメリカ
注記
"Portions of the material, in rather different form, appeared in Alagić's Serbo-Croatian text Principi programiranja."
Bibliography: p. [249]-252
Includes indexes
内容説明・目次
内容説明
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.
目次
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.
「Nielsen BookData」 より