VIRGINIA TECH OF DEPARTMENT OF COMPUTER SCIENCE

COMPILERS AND TRANSLATORS

LEXICAL ANALYSIS

SYNTACTIC ANALYSIS

SEMANTIC ANALYSIS

CODE GENERATION

OPTIMIZATION


SYMBOL TABLE

Milestones in Compiler Development

A bibliography of articles that were significant in the development of compiler technology.
  • Compiler Development
    • Hopper, Grace Murray. 1952. "The Education of a Computer", Proc. ACM National Conference, Pittsburgh PA, reprinted in Annals of the History of Computing, Vol. 9, No. 3/4, 1988, pp. 271-281.
    • Randell, Brian, and L.J. Russell. 1964. ALGOL 60 Implementation, APIC Studies in Data processing No. 5, Academic Press, London and New York, 418 pp.
    • Lee, John A.N. 1967. The Anatomy of a Compiler, Reinhold Publ. Co., 275 pp.
    • Gries, D. 1971. Compiler Construction for Digital Computers, John Wiley & Sons, New York, 493 pp. (This book is interesting in that it is not typeset, but instead is a photocopy of what appears to be a computer print-out.)

  • Lexical Analysis
    • McCulloch, W.S., and E. Pitts. 1943. "A Logical Calculus of the Ideas Immanent in Nervous Activity", Bull. Math. Biophysics, Vol. 5, pp. 115-133. (The first paper on finite state machines, very difficult to read.)
    • Johnson, W.L., J.H. Porter, S.I. Ackley, D.T. Ross. 1968. "Automatic Generation of Efficient Lexical Processors Using Finite State Techniques", Comm. ACM, Vol. 11, No. 12, pp. 805-813.
    • Morgan, H.L. 1970. "Spelling Correction in Systems Programs", Comm. ACM, Vol. 13, No. 2, pp. 90-93.
    • Mossenbock, H. 1986. "Alex-A Simple and Efficient Scanner Generator", ACM SIGPLAN Notices, Vol. 21, No. 12, pp. 139-148.

  • Syntactic Specification
    • Chomsky, N. 1956. "Three Models for the Description of Language", IRE Trans. on Information Theory, Vol. 2, pp. 113-124.
    • Floyd, R.W. 1964. "Ther Syntax of Programming Languages-A Survey", IEEE Trans. on Computers, pp. 346-352.

  • Expression Analysis
    • Samelson, K., and F.L. Bauer. 1960. "Sequential Formula Translation", Comm. ACM, Vol. 3, No. 1, pp. 76-83. (The first use of stacks as a pushdown automata in the analysis of expressions.)
    • Huskey, H.D., and W.H. Wattenburg. "A Basic Compiler for Arithmetic Expressions", Comm. ACM, Vol. 4, No. 1, pp. 3-9.
    • Floyd, R.W. 1963. "Syntactic Analysis and Operator Precedence", Jour. ACM, Vol 10, pp. 316-333.

  • Recursive Descent

  • Top-Down Syntactic Analysis
    • Irons, E.T. 1961. "A Syntax Directed Compiler for ALGOL 60", Comm. ACM, Vol. 4, No. 1, pp. 51-55.
    • Knuth, D.E. 1962. "History of Writing Compilers", Proc. ACM 17th National Conference, pp. 43, 126.
    • Cheatham, T.E., and K. Sattley. 1964. "Syntax-Directed Compiling", Proc. AFIPS Spring Joint Computer Conference, pp. 31-53.
    • Davie, A.J.T., and R. Morrison. 1981. Recursive Descent Compiling, Halstead Press, New York.

  • Bottom-up Syntactic Analysis
    • Knuth, D.E. 1965. "On the Translation of Languages from Left to Right", Information and Control, Vol. 8, pp. 607-639. (The first paper on LR parsing.)
    • Korenjak, A.J. 1969. A Practical Methoid for Constructing LR(k) Processors", Comm. ACM, Vol. 12, No. 11, pp. 613-623.
    • DeRemer, F.L. 1971. "Simple LR(k) Grammars", Comm. ACM, Vol. 14, No. 7, pp. 453-460.

  • Semantic Analysis
    • Naur, P. 1965. "Checking of Operand Types in ALGOL Compilers", BIT, Vol. 5, pp. 151-163.
    • Knuth, D.E. 1968. "Semantics of Context-Free Languages", Math. Systems Theory Jour., Vol. 2, pp. 127-145. (Attribute Grammars.)

  • Code Generation
    • Backus, J.W., et al. 1957. "The FORTRAN Automatic Coding System", Western Computer Proceedings, pp. 188-198.
    • Ingerman, P.Z. 1961. "Thunks: A Way of Compiling Procedure Statements ...", Comm. ACM, Vol. 4, No. 1, pp. 55ff.
    • Anderson, J.P. 1964. "A Note on Some Compiling Algorithms", Comm. ACM, Vol. 7, No. 3, pp. 149-150.

  • Intermediate Languages
    • Strong, J., et al. 1958. "The Problem of Programming Communication with Changing Machines", Comm. ACM, Vol. 1, No. 8, pp. 12-18, No. 9, pp. 9-15. (The proposal for a universal language-UNCOL.)
    • Nori, K.V., et al. 1981. "Pascal-P Implementation Notes", in Barron, D.W., (ed), Pascal-The Language and Its Implementation, John Wiley & Sons, Publ., pp. 125-170.

  • Optimization Techniques
    • Sheridan, P. 1959. "The Arithmetic Translator Compiler of the IBM FORTRAN Automatic Coding System", Comm. ACM, Vol. 2, No. 2, pp. 9-21.
    • Allen, F.E., and J. Cocke. 1972. "A Catalog of Optimizing Transformations", Courant Computer Science Symposium, No. 5, Prentice-Hall, pp. 1-30.
    • Cocke, J. 1970. "Global Common Subexpression Elimination", Proc. Symp. of Compiler Optimization, ACM SIGPLAN Notices, July.

  • The Symbol Table
    • Peterson, W.W. 1957. "Addressing for Random-Access Storage", IBM Jour. Res, Dev., Vol. 1, No. 2, pp. 249-253.
    • Batson, A. 1965. "The Organization of Symbol Tables", Comm. ACM, Vol. 8, No. 2, pp. 111-112.
    • Maurer, W.D., and Lewis, T.G. 1975. "Hash Table Methods", Comp. Surveys, Vol. 7, No. 1, pp. 5-19.

On-line Useful References

  • Compiler Development
  • Lexical Analysis
  • Syntactic Specification
  • Expression Analysis
  • Recursive Descent
  • Top-Down Syntactic Analysis
  • Bottom-up Syntactic Analysis
  • Semantic Analysis
  • Code Generation
  • Intermediate Languages
  • Optimization Techniques
  • The Symbol Table

© J.A.N. LEE
Last Updated 99/03/15