Compilers and compiler generators : an introduction with C++

Designed for computer science students studying for a second or final year course in compilers/programming language translation, this text manages to combine theory, practical applications and enough use of compiler writing tools to give students a solid introduction to the subject. The text provides enough theory to allow the reader insight into areas of programming language design and implementation - without overwhelming the student with too much maths. It also provides case studies of translators (which completes a small assembler compiler). The illustrations in the book concentrate on the use of C++, whilst limited object-oriented features are explained.

[1]  Russell W. Quong,et al.  ANTLR: A predicated‐LL(k) parser generator , 1995, Softw. Pract. Exp..

[2]  Olivier Lecarme,et al.  Self‐compiling compilers: An appraisal of their implementation and portability , 1978, Softw. Pract. Exp..

[3]  Heinz Dobler,et al.  Coco-2: a new compiler compiler , 1990, SIGP.

[4]  Jim Welsh,et al.  A pascal compiler for ICL 1900 series computers , 1972, Softw. Pract. Exp..

[5]  Bjarne Stroustrup,et al.  The C++ programming language (2nd ed.) , 1991 .

[6]  Mark A. Taylor,et al.  Minimal perfect hash functions for reserved word lists , 1985, SIGP.

[7]  R. Nigel Horspool,et al.  Practical Perfect Hashing , 1985, Comput. J..

[8]  Hanspeter Mössenböck,et al.  A compiler generator for microcomputers , 1989 .

[9]  Patrick D. Terry,et al.  Programming language translation , 1986 .

[10]  Kevin John Gough Syntax analysis and software tools , 1988, International computer science series.

[11]  John McCarthy,et al.  Recursive functions of symbolic expressions and their computation by machine, Part I , 1959, Commun. ACM.

[12]  Brian L. Meek The static semantics file , 1990, SIGP.

[13]  Russell W. Quong,et al.  LL and LR translators need k>1 lookahead , 1996, SIGP.

[14]  Robin Hunter,et al.  The Design and Construction of Compilers , 1990 .

[15]  Salvatore Valenti,et al.  A modulus oriented hash function for the construction of minimal perfect tables , 1992, SIGP.

[16]  Mike Rees,et al.  Practical compiling with Pascal-S , 1988 .

[17]  P. D. Terry Umbriel—another minimal programming language , 1995, SIGP.

[18]  STEVEN PEMBERTON Comments on an error‐recovery scheme by Hartmann , 1980, Softw. Pract. Exp..

[19]  George M. Mohay,et al.  Modula-2 - a second course in programming , 1988, Advances in computer science series.

[20]  Josef Grosch Generators for High-Speed Front-Ends , 1988, CC.

[21]  H. Mössenböck Alex - A simple and efficient scanner generator , 1986 .

[22]  C. A. R. Hoare,et al.  Ambiguities and insecurities in pascal , 1977, Softw. Pract. Exp..

[23]  Arthur H. J. Sale The implementation of case statements in Pascal , 1981, Softw. Pract. Exp..

[24]  Ronald Mak Writing compilers and interpreters - an applied approach , 1991, Wiley professional computing.

[25]  David A. Watt Programming language syntax and semantics , 1991, Prentice Hall International Series in Computer Science.

[26]  Ceriel J. H. Jacobs,et al.  A programmer‐friendly LL(1) parser generator , 1988, Softw. Pract. Exp..

[27]  John Elder Compiler construction - a recursive descent model , 1994, Prentice Hall international series in computer science.

[28]  Julian Ullmann Compiling in Modula-2: A First Introduction to Classical Recursive Descent Compiling , 1994 .

[29]  David William Barron Pascal - The Language and its Implementation , 1981, Pascal - The Language and its Implementation.

[30]  Roland Carl Backhouse,et al.  Syntax of Programming Languages: Theory and Practice , 1979 .

[31]  Niklaus Wirth,et al.  The programming language oberon , 1988, Softw. Pract. Exp..

[32]  Niklaus Wirth,et al.  On the Design of Programming Languages , 1974, IFIP Congress.

[33]  R. P. Mody C in education and software engineering , 1991, SGCS.

[34]  Axel T. Schreiner,et al.  Introduction to Compiler Construction with UNIX , 1985 .

[35]  David A. Watt,et al.  Programming Language Processors , 1993 .

[36]  D. J. Robson,et al.  Steady‐state compilers , 1984, Softw. Pract. Exp..

[37]  Bjarne Stroustrup,et al.  The Design and Evolution of C , 1994 .

[38]  Markku Sakkinen The Darker Side of C++ Revisited , 1992, Struct. Program..

[39]  Jim Welsh,et al.  Structured System Programming , 1980 .

[40]  Heinz Dobler Top-down parsing in Coco-2 , 1991, SIGP.

[41]  Jim Welsh,et al.  A draft description of Pascal , 1979, Softw. Pract. Exp..

[42]  Rodney W. Topor,et al.  A note on error recovery in recursive descent parsers , 1982, SIGP.

[43]  J. P. Bennett Introduction to Compiling Techniques: A First Course Using ANSI C, Lex, and Yacc , 1996 .

[44]  Niklaus Wirth,et al.  From modula to oberon , 1988, Softw. Pract. Exp..

[45]  Charles N. Fischer,et al.  Crafting a Compiler with C , 1991 .

[46]  Colin Stirling,et al.  Follow set error recovery , 1985, Softw. Pract. Exp..

[47]  Murray Hill,et al.  Yacc: Yet Another Compiler-Compiler , 1978 .

[48]  Friedrich L. Bauer,et al.  Report on the algorithmic language ALGOL 60 , 1960, Commun. ACM.

[49]  Murray Hill,et al.  Why Pascal is Not My Favorite Programming Language , 1981 .

[50]  Jay Earley,et al.  A formalism for translator interactions , 1970, CACM.

[51]  Josef Grosch,et al.  Lalr - A Generator for Efficient Parsers , 1990, Softw. Pract. Exp..

[52]  Niklaus Wirth,et al.  Algorithms + Data Structures = Programs , 1976 .

[53]  Kathleen Jensen,et al.  Pascal-P Implementation Notes , 1981, Pascal - The Language and its Implementation.

[54]  Richard J. Cichelli Minimal perfect hash functions made simple , 1980, CACM.

[55]  Des Watson High-level languages and their compilers , 1989, International computer science series.

[56]  Henry G. Dietz,et al.  PCCTS reference manual: version 1.00 , 1992, SIGP.

[57]  Henk Alblas,et al.  Practice and principles of compiler building with C , 1996 .

[58]  K. N. King C Programming: A Modern Approach , 1996 .

[59]  John A. Trono A comparison of three strategies for computing letter oriented, minimal perfect hashing functions , 1995, SIGP.

[60]  Allen I. Holub Compiler design in C , 1990 .

[61]  Niklaus Wirth,et al.  What can we do about the unnecessary diversity of notation for syntactic definitions? , 1977, Commun. ACM.

[62]  Paul A. Bailes,et al.  A Rational Pascal , 1984, Aust. Comput. J..

[63]  Niklaus Wirth,et al.  Pascal-S: A Subset and its Implementation , 1981, Pascal - The Language and its Implementation.

[64]  Jim Holmes Object-oriented compiler construction , 1994 .

[65]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[66]  Arthur B. Maccabe Computer Systems: Architecture, Organization, and Programming , 1993 .

[67]  Per Brinch Hansen Programming a personal computer , 1982 .

[68]  Friedrich L. Bauer,et al.  Revised report on the algorithm language ALGOL 60 , 1963, CACM.

[69]  Hanspeter Mössenböck,et al.  A Generator for Production Quality Compilers , 1990, CC.

[70]  Josef Grosch Efficient generation of lexical analysers , 1989, Softw. Pract. Exp..

[71]  Alan Burns,et al.  Real-time systems and their programming languages , 1986, International computer science series.

[72]  B. J. Cornelius,et al.  Problems with the language modula‐2 , 1988, Softw. Pract. Exp..

[73]  Robert Cailliau,et al.  How to avoid getting schlonked by Pascal , 1982, SIGP.

[74]  Noam Chomsky,et al.  On Certain Formal Properties of Grammars , 1959, Inf. Control..

[75]  Andrew D. McGettrick The definition of programming languages , 1980 .

[76]  Jim Welsh,et al.  A Model Implementation of Standard Pascal , 1986 .

[77]  John F. Wakerly Microcomputer architecture and programming , 1981 .

[78]  Mordechai Ben-Ari,et al.  Principles of concurrent programming , 1982 .

[79]  Dines Bjørner,et al.  Formal specification and software development , 1982 .

[80]  Hanspeter Moessenboeck,et al.  Coco/R - A Generator for Fast Compiler Front Ends , 1990 .

[81]  Josef Grosch Efficient and Comfortable Error Recovery in Recursive Descent Parsers , 1990, Struct. Program..

[82]  Peter N. van den Bosch,et al.  A bibliography on syntax error handling in context free languages , 1992, SIGP.

[83]  Alan Burns,et al.  Concurrent programming , 1980, Operating Systems Engineering.

[84]  John L. Hennessy,et al.  Compilation of the Pascal case statement , 1982, Softw. Pract. Exp..

[85]  Bjarne Stroustrup,et al.  The Annotated C++ Reference Manual , 1990 .

[86]  Paul G. Sorenson,et al.  The Theory And Practice of Compiler Writing , 1985 .

[87]  Charles N. Fischer,et al.  Crafting a Compiler , 1988 .

[88]  John A. N. Lee The formal definition of the BASIC language , 1972, Comput. J..