A practical theory of programming

書誌事項

A practical theory of programming

Eric C. R. Hehner

(Texts and monographs in computer science)

Springer-Verlag, c1993

1st ed

  • : us
  • : gw

大学図書館所蔵 件 / 26

この図書・雑誌をさがす

注記

Includes bibliographical references

内容説明・目次

巻冊次

: us ISBN 9780387941066

内容説明

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.

目次

1 Basic Theories.- Boolean Theory.- Axioms and Proof Rules.- Expression and Proof Format.- Formalization.- Number Theory.- Character Theory.- 2 Basic Data Structures.- Bunch Theory.- Set Theory.- String Theory.- List Theory.- Multidimensional Structures.- 3 Function Theory.- Functions.- Abbreviated Function Notations.- Scope and Substitution.- Quantifiers.- Function Fine Points.- Substitution versus Distribution.- Function Inclusion and Equality.- Function Composition.- List as function.- 4 Program Theory.- Specifications.- Specification Notations.- Specification Laws.- Refinement.- Conditions.- Programs.- Program Development.- Refinement Laws.- List Summation.- Binary Exponentiation.- Time.- Real Time.- Recursive Time.- Termination.- Linear Search.- Binary Search.- Fast Exponentiation.- Fibonacci Numbers.- Robustness.- Refinement in Place.- 5 Programming Language.- Scope.- Variable Declaration.- Variable Suspension.- Data Structures.- Arrays.- Records.- Control Structures.- While Loop.- Repeat Loop.- Exit Loop.- Two-Dimensional Search.- For Loop.- Minimum Sum Segment.- Go To.- Time Dependence.- Assertions.- Checking.- Backtracking.- Subprogram.- Result Expression.- Function.- Procedure.- Alias.- Functional Programming.- Function Refinement.- 6 Recursive Definition.- Recursive Data Definition.- Construction and Induction.- Least Fixed-Points.- Recursive Data Construction.- Recursive Program Definition.- Recursive Program Construction.- Loop Definition.- Limits.- 7 Theory Design and Implementation.- Data Theories.- Data-Stack Theory.- Data-Stack Implementation.- Simple Data-Stack Theory.- Data-Queue Theory.- Data-Tree Theory.- Data-Tree Implementation.- Program Theories.- Program-Stack Theory.- Program-Stack Implementation.- Fancy Program-Stack Theory.- Weak Program-Stack Theory.- Program-Queue Theory.- Program-Tree Theory.- Specification by Implementation.- Data Transformation.- 8 Concurrency.- Independent Composition.- Laws of Independent Composition.- List Concurrency.- Circuit Design.- Security Switch.- Found Concurrency.- Buffer.- Insertion Sort.- 9 Communication.- Implementability.- Input and Output.- Communication Timing.- Recursively Defined Communication.- Input Composition.- Merge.- Monitor.- Reaction Controller.- Communicating Processes.- Channel Declaration.- Deadlock.- Power Series Multiplication.- 10 Exercises.- Basic Theories.- Basic Data Structures.- Function Theory.- Program Theory.- Programming Language.- Recursive Definition.- Theory Design and Implementation.- Concurrency.- Communication.- 11 Reference.- Justifications.- Sources.- Axioms and Laws.- Symbols and Names.- Precedence.
巻冊次

: gw ISBN 9783540941064

内容説明

Understanding programming and programming languages requires knowledge of the underlying theoretical model. This book explores aspects of programming that are amenable to mathematical proof. The author describes a programming theory which is much simpler and more comprehensive than the current theories to date. In the theoretical model, a specification is just a Boolean expression and refinement is just an ordinary implication. The author develops a practical and broad method for writing precise specifications and designing programs whose executions probably satisfy the specifications. Beginning with preparatory material in logic, numbers, sets, lists, functions and relations, the book advances further into program theory, the heart of the book. Subsequent chapters may be selected or omitted according to course emphasis. The text will be useful to students in courses on programming methodology or verification at the advanced undergraduate or beginning graduate level, as well as for software engineers in the field. All technical terms are explained and then demonstrated in the book wherever possible. No advanced mathematical knowledge or programming language is assumed. The book contains numerous exercises and worked-out solutions for specific exercises.

「Nielsen BookData」 より

関連文献: 1件中  1-1を表示

詳細情報

  • NII書誌ID(NCID)
    BA20908189
  • ISBN
    • 0387941061
    • 3540941061
  • LCCN
    93005269
  • 出版国コード
    us
  • タイトル言語コード
    eng
  • 本文言語コード
    eng
  • 出版地
    New York ; Berlin
  • ページ数/冊数
    243 p.
  • 大きさ
    25 cm
  • 分類
  • 件名
  • 親書誌ID
ページトップへ