The Definition of Programming Languages

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Author(s): McGettrick
Series: Cambridge Computer Science Texts 11
Publisher: Cambridge University Press
Year: 1980

Language: English
Commentary: hyphenations as dashes (e.g. mathe- matics)
Pages: 279

Cover......Page __sk_0000.djvu
Copyright......Page __sk_0002.djvu
Contents......Page __sk_0005.djvu
Preface......Page __sk_0009.djvu
1.1 Reasons for having a definition......Page __sk_0011.djvu
1.2 Desirable qualities......Page __sk_0013.djvu
1.3 The scope of this book......Page __sk_0014.djvu
2.1.1 Background......Page __sk_0016.djvu
2.1.2 The definition of a grammar......Page __sk_0018.djvu
2.1.3 The Chomsky hierarchy......Page __sk_0021.djvu
2.2.1 The parsing problem......Page __sk_0022.djvu
2.2.2 Recursive descent......Page __sk_0025.djvu
2.2.3 Ambiguity in grammars......Page __sk_0028.djvu
2.3 Grammars for parsing......Page __sk_0029.djvu
2.3.1 LL(k)-grammars......Page __sk_0030.djvu
2.3.2 LR(k)-grammars......Page __sk_0033.djvu
2.3.3 Comparing LL- and LR-grammars......Page __sk_0036.djvu
2.4 Theoretical results......Page __sk_0037.djvu
3.1.1 The history of FORTRAN......Page __sk_0040.djvu
3.1.2 Implementation considerations......Page __sk_0044.djvu
3.1.3 The 1966 FORTRAN Standards......Page __sk_0047.djvu
3.1.4 The FORTRAN 77 Standard......Page __sk_0048.djvu
3.2 The Revised ALGOL 60 Report......Page __sk_0052.djvu
3.2.1 The ALGOL 60 syntax......Page __sk_0053.djvu
3.2.2 Deficiencies in BNF notation......Page __sk_0056.djvu
3.2.3 Extensions to BNF notation......Page __sk_0057.djvu
3.2.4 Semantics and other sections......Page __sk_0063.djvu
3.2.5 Further comments......Page __sk_0067.djvu
3.2.6 Conclusions......Page __sk_0069.djvu
3.2.7 The Modified Report on ALGOL 60......Page __sk_0070.djvu
3.3.1 S-expressions......Page __sk_0071.djvu
3.3.2 M-expressions......Page __sk_0073.djvu
3.3.3 The lambda notation......Page __sk_0075.djvu
3.3.4 Conversion from M-expressions to S-expressions......Page __sk_0076.djvu
3.3.5 The LISP interpreter......Page __sk_0077.djvu
3.3.6 Commentary......Page __sk_0079.djvu
4.1.1 History......Page __sk_0081.djvu
4.1.2 Syntax......Page __sk_0082.djvu
4.1.3 The T-notation......Page __sk_0084.djvu
4.1.4 Expressions......Page __sk_0086.djvu
4.1.5 Conclusions on syntax......Page __sk_0090.djvu
4.1.6 Semantics......Page __sk_0091.djvu
4.2.1 History......Page __sk_0093.djvu
4.2.2 The 1968 Standard......Page __sk_0095.djvu
4.2.3 The definition of clauses......Page __sk_0097.djvu
4.2.4 The 1974 Standard......Page __sk_0100.djvu
4.3 BASIC......Page __sk_0101.djvu
5.1 The history of PL/I and its definitions......Page __sk_0105.djvu
5.2 The PL/I Standard......Page __sk_0108.djvu
5.2.1 Summary of the definition method......Page __sk_0109.djvu
5.2.2 Syntactic notation......Page __sk_0110.djvu
5.2.3 The concrete and abstract syntaxes......Page __sk_0114.djvu
5.2.4 The interpreter......Page __sk_0117.djvu
5.2.5 Combining the different aspects of the PL/I definition......Page __sk_0119.djvu
5.3 The Vienna Definition Language......Page __sk_0121.djvu
5.3.1 The set of objects......Page __sk_0123.djvu
5.3.2 The mu-operator......Page __sk_0125.djvu
5.3.3 Predicates......Page __sk_0128.djvu
5.3.4 Lists of objects......Page __sk_0129.djvu
5.3.5 Abstract syntax......Page __sk_0131.djvu
5.3.6 The abstract machine......Page __sk_0133.djvu
5.3.7 The interpreter......Page __sk_0140.djvu
5.4 Final remarks......Page __sk_0146.djvu
6. Definitions of PASCAL......Page __sk_0148.djvu
6.1.1 Motivation......Page __sk_0149.djvu
6.1.2 Attribute grammars......Page __sk_0153.djvu
6.1.3 Algorithms and theoretical results......Page __sk_0157.djvu
6.2.1 Introductory remarks......Page __sk_0162.djvu
6.2.2 Application to PASCAL......Page __sk_0163.djvu
6.3 Axiomatic semantics......Page __sk_0169.djvu
6.3.1 Program verification......Page __sk_0170.djvu
6.3.2 Notation and terminology......Page __sk_0175.djvu
6.3.3 Application to PASCAL......Page __sk_0178.djvu
6.3.4 Commentary on the axiomatic approach......Page __sk_0182.djvu
7.1 Introductory remarks......Page __sk_0185.djvu
7.2 Representations......Page __sk_0188.djvu
7.3 The standard environment......Page __sk_0190.djvu
7.4.1 Skeleton syntax......Page __sk_0193.djvu
7.4.2 Production rules of the language......Page __sk_0196.djvu
7.4.3 Inserting modes into the syntax......Page __sk_0201.djvu
7.4.4 Introducing predicates into the syntax......Page __sk_0206.djvu
7.4.5 Some examples......Page __sk_0210.djvu
7.5 Semantics......Page __sk_0213.djvu
7.6 Concluding remarks......Page __sk_0214.djvu
8. Denotational semantics......Page __sk_0219.djvu
8.1 Introduction to basic ideas......Page __sk_0220.djvu
8.2 The lambda calculus......Page __sk_0222.djvu
8.3 Self-application and inconsistency......Page __sk_0228.djvu
8.4 The idea of approximation......Page __sk_0230.djvu
8.5 The semantic domains......Page __sk_0233.djvu
8.6 Application of Scott's work......Page __sk_0235.djvu
8.7 Environments and stores......Page __sk_0237.djvu
8.8 Continuations......Page __sk_0239.djvu
8.9 Illustrations......Page __sk_0242.djvu
8.10 Language design......Page __sk_0246.djvu
9.1 Syntax......Page __sk_0250.djvu
9.2 Semantics......Page __sk_0252.djvu
9.3 Other directions of progress......Page __sk_0254.djvu
9.4 Final remarks......Page __sk_0259.djvu
Miscellaneous exercises......Page __sk_0261.djvu
References......Page __sk_0265.djvu
Author index......Page __sk_0271.djvu
Subject index......Page __sk_0273.djvu