9780262731034

Formal Semantics

by
  • ISBN13:

    9780262731034

  • ISBN10:

    0262731037

  • Format: Paperback
  • Copyright: 1993-02-05
  • Publisher: Mit Pr
  • Purchase Benefits
  • Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $70.00 Save up to $2.10
  • Buy New
    $67.90
    Add to Cart Free Shipping

    SPECIAL ORDER: 1-2 WEEKS

Supplemental Materials

What is included with this book?

  • The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

Summary

The Formal Semantics of Programming Languagesprovides the basic mathematical techniques necessary for those who are beginning a study of the semantics and logics of programming languages. These techniques will allow students to invent, formalize, and justify rules with which to reason about a variety of programming languages. Although the treatment is elementary, several of the topics covered are drawn from recent research, including the vital area of concurency. The book contains many exercises ranging from simple to miniprojects. Starting with basic set theory, structural operational semantics is introduced as a way to define the meaning of programming languages along with associated proof techniques. Denotational and axiomatic semantics are illustrated on a simple language of while-programs, and fall proofs are given of the equivalence of the operational and denotational semantics and soundness and relative completeness of the axiomatic semantics. A proof of Godel's incompleteness theorem, which emphasizes the impossibility of achieving a fully complete axiomatic semantics, is included. It is supported by an appendix providing an introduction to the theory of computability based on while-programs. Following a presentation of domain theory, the semantics and methods of proof for several functional languages are treated. The simplest language is that of recursion equations with both call-by-value and call-by-name evaluation. This work is extended to lan guages with higher and recursive types, including a treatment of the eager and lazy lambda-calculi. Throughout, the relationship between denotational and operational semantics is stressed, and the proofs of the correspondence between the operation and denotational semantics are provided. The treatment of recursive types - one of the more advanced parts of the book - relies on the use of information systems to represent domains. The book concludes with a chapter on parallel programming languages, accompanied by a discussion of methods for specifying and verifying nondeterministic and parallel programs.

Table of Contents

Series foreword
Preface
Basic set theoryp. 1
Logical notationp. 1
Setsp. 2
Relations and functionsp. 6
Introduction to operational semanticsp. 11
IMP - a simple imperative languagep. 11
The evaluation of arithmetic expressionsp. 13
The evaluation of boolean expressionsp. 17
The execution of commandsp. 19
A simple proofp. 20
Alternative semanticsp. 24
Some principles of inductionp. 27
Mathematical inductionp. 27
Structural inductionp. 28
Well-founded inductionp. 31
Induction on derivationsp. 35
Definitions by inductionp. 39
Inductive definitionsp. 41
Rule inductionp. 41
Special rule inductionp. 44
Proof rules for operational semanticsp. 45
Operators and their least fixed pointsp. 52
The denotational semantics of IMPp. 55
Motivationp. 55
Denotational semanticsp. 56
Equivalence of the semanticsp. 61
Complete partial orders and continuous functionsp. 68
The Knaster-Tarski Theoremp. 74
The axiomatic semantics of IMPp. 77
The ideap. 77
The assertion language Assnp. 80
Semantics of assertionsp. 84
Proof rules for partial correctnessp. 89
Soundnessp. 91
Using the Hoare rules - an examplep. 93
Completeness of the Hoare rulesp. 99
Godel's Incompleteness Theoremp. 99
Weakest preconditions and expressivenessp. 100
Proof of Godel's Theoremp. 110
Verification conditionsp. 112
Predicate transformersp. 115
Introduction to domain theoryp. 119
Basic definitionsp. 119
Streams - an examplep. 121
Constructions on cpo'sp. 123
A metalanguagep. 135
Recursion equationsp. 141
The language RECp. 141
Operational semantics of call-by-valuep. 143
Denotational semantics of call-by-valuep. 144
Equivalence of semantics for call-by-valuep. 149
Operational semantics of call-by-namep. 153
Denotational semantics of call-by-namep. 154
Equivalence of semantics for call-by-namep. 157
Local declarationsp. 161
Techniques for recursionp. 163
Bekie's Theoremp. 163
Fixed-point inductionp. 166
Well-founded inductionp. 174
Well-founded recursionp. 176
Languages with higher typesp. 183
An eager languagep. 183
Eager operational semanticsp. 186
Eager denotational semanticsp. 188
Agreement of eager semanticsp. 190
A lazy languagep. 200
Lazy operational semanticsp. 201
Lazy denotational semanticsp. 203
Agreement of lazy semanticsp. 204
Fixed-point operatorsp. 209
Observations and full abstractionp. 215
Sumsp. 219
Information systemsp. 223
Recursive typesp. 223
Information systemsp. 225
Closed families and Scott predomainsp. 228
A cpo of information systemsp. 233
Constructionsp. 236
Recursive typesp. 251
An eager languagep. 251
Eager operational semanticsp. 255
Eager denotational semanticsp. 257
Adequacy of eager semanticsp. 262
The eager [lambda]-calculusp. 267
A lazy languagep. 278
Lazy operational semanticsp. 278
Lazy denotational semanticsp. 281
Adequacy of lazy semanticsp. 288
The lazy [lambda]-calculusp. 290
Nondeterminism and parallelismp. 297
Introductionp. 297
Guarded commandsp. 298
Communicating processesp. 303
Milner's CCSp. 308
Pure CCSp. 311
A specification languagep. 316
The modal [nu]-calculusp. 321
Local model checkingp. 327
A: Incompleteness and undecidabilityp. 337
Bibliographyp. 353
Indexp. 357
Table of Contents provided by Blackwell. All Rights Reserved.

Rewards Program

Write a Review