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