Usability and portability of a compiler writing system

  • Olivier Lecarme
Part of the Lecture Notes in Computer Science book series (LNCS, volume 47)


This paper presents a system for automating the production of compilers for programming languages. It emphasizes two particular aspects of this system, its usability and its portability. It also gives a comparison with some good competitive systems, and draws conclusions for future work. The system produces compilers written in the programming language Pascal, from a self-contained description of the language to be compiled. This description uses a notation similar to Backus-Naur form for the syntax, and semantic attributes and actions written in Pascal for the semantics. The system is written entirely in Pascal, and is in current use on several computers.


Semantic Attribute Semantic Action Error Handling Precedence Matrix Parser Generator 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. (Boc72).
    Bochmann G. V. Une définition syntaxique et sémantique des langages pour un système d'écriture de compilateurs. Document de travail 30, Département d'Informatique, Université de Montréal, October 1972 (French).Google Scholar
  2. (BSS71).
    Book E., Sherman S. J. & Schorre D. V. CWIC user's guide. TM-(L)-4185, System Development Corporation, Santa Monica, 1970 and 1971.Google Scholar
  3. (Coh72).
    Cohen J. (supervisor) et al. A compiler generator. Brandeis Universityn Waltham, Massachusetts, August 1972.Google Scholar
  4. (Coh75).
    Cohen J. Experience with a conversational parser generating system. Software — practice and experience 5, 2, April 1975, 169–180.Google Scholar
  5. (FeG68).
    Feldman J. A. & Gries D. Translator writing systems. Communications of the ACM 11, 2, February 1968, 77–113.Google Scholar
  6. (FeH71).
    Fernandez A. & Héliard J. C. Manuel d'utilisation du programme Synproc. SIM-71-15, Compagnie Internationale d'Informatique, Les Clayes-sous-bois, October 1971 (French).Google Scholar
  7. (Fe166).
    Feldman J. A. A formal semantics for computer languages and its application in a compiler-compiler. Communications of the ACM 9, 1, January 1966, 3–9.Google Scholar
  8. (GrR75).
    Graham S. L. & Rhodes S. P. Practical syntactic error recovery. To appear in Communications of the ACM 18, 1975.Google Scholar
  9. (Hoa73).
    Hoare C. A. R. Hints on programming language design. CS-401, Computer Science Department, Stanford University, Stanford, December 1973.Google Scholar
  10. (HoL70).
    Horning J. J. & Lalonde W. R. Empirical comparison of LR(k) and precedence parsers. ACM Sigplan Notices 13, 8, November 1970, 10–24.Google Scholar
  11. (IcM70).
    Ichbíah J. D. & Morse S. P. A technique for generating almost optimal Floyd-Evans productions for precedence grammars. Communications of the ACM 13, 8, August 1970, 501–508.Google Scholar
  12. (JeW74).
    Jensen K. & Wirth N. Pascal user manual and report. Springer Verlag, Berlin, Heidelberg, New York, 1974.Google Scholar
  13. (Kam75).
    Kamnitzer S. H. Bootstrapping XPL from IBM/360 to Univac 1100. ACM Sigplan Notices 10, 5, May 1975, 14–20.Google Scholar
  14. (Knu68).
    Knuth D. E. Semantics of context-free languages. Mathematical systems theory 2, 2, February 1968, 127–145.Google Scholar
  15. (Kos71).
    Koster C. H. A. Affix grammars. In Algol 68 implementation, J. E. L. Peck editor, North-Holland, Amsterdam, 1971, 95–109.Google Scholar
  16. (La171).
    Lalonde W. R. An efficient LALR parser generator. CSRG-2, Computer Systems Research Group, University of Toronto, February 1971.Google Scholar
  17. (Lar73).
    Larmouth J. Serious Fortran. Software — practice and experience 3, 1973, 87–107 and 197–255.Google Scholar
  18. (LeB74).
    Lecarme O. & Bochmann G. V. A (truly) usable and portable compiler writing system. In Information Processing 74, J. L. Rosenfeld editor, North-Holland, Amsterdam, 1974, 218–221.Google Scholar
  19. (Lec72).
    Lecarme O. Un générateur d'analyseurs syntaxiques. Document de travail 27, Département d'Informatique, Université de Montréal, August 1972 (French).Google Scholar
  20. (Lec73a).
    Lecarme O. An experience in structured programming and transferability. ACM Sigplan Notices 8, 9, September 1973, 95–96.Google Scholar
  21. (Lec73b).
    Lecarme O. Un générateur d'analyseurs lexicaux. Document de travail 40, Départment d'Informatique, Université de Montréal, June 1973 (French).Google Scholar
  22. (Lec74).
    Lecarme O. Un système d'écriture de compilateurs: manuel d'utilisation. Document de travail, Département d'Informatique, Université de Montréal, October 1974 (French).Google Scholar
  23. (Lec75a).
    Lecarme O. Le langage Pascal comme outil d'écriture de programmes transportables. Journées sur l'implantation, l'utilisation et l'extension du langage Pascal, Nice, June 1975 (proceedings to be published, French).Google Scholar
  24. (Lec75b).
    Lecarme O. Fiabilité et transportabilité: l'influence du langage de programmation. Cinquième Ecole d'Eté d'Informatique de l'AFCET, Rabat, July 1975 (proceedings to be published, French).Google Scholar
  25. (Led74).
    Ledgard H. F. Production systems: or can we do better than BNF ? Communications of the ACM 17, 2, February 1974, 94–102.Google Scholar
  26. (LeG73).
    Leach G. & Golde H. Bootstrapping XPL to an XDS Sigma 5 computer. Software — practice and experience 3, 1973, 235–244.Google Scholar
  27. (Lou73).
    Louis-Seize M. Essais et mise au point d'un système d'écriture de compilateurs. Document de travail 46, Département d'Informatique, Université de Montréal, November 1973 (French).Google Scholar
  28. (McK70).
    McKeemann W. M., Horning J. J. & Wortman D. B. A compiler generator. Prentice-Hall, Englewood Cliffs, New Jersey, 1970.Google Scholar
  29. (Mic73).
    Mickunas M. D. Techniques for compressing bounded-context acceptors. Ph. D. thesis, Purdue University, Lafayette, Indiana, May 1973.Google Scholar
  30. (MiS73).
    Mickunas M. D. & Schneider V. B. A parser-generating system for constructing compressed compilers. Communications of the ACM 16, 11, November 1973, 669–675.Google Scholar
  31. (PoW73).
    Poole P. C. & Waite W. M. Portability and adaptability. In Advanced course in software engineering, F. L. Bauer editor, Springer Verlag, Berlin, Heidelberg, New York, 1973, 183–277.Google Scholar
  32. (Rho73).
    Rhodes S. P. Practical syntactic error recovery for programming languages. Ph. D. thesis, Computer Science Department, University of California, Berkeley, June 1973.Google Scholar
  33. (Pur73).
    Purdom P. A sentence generator for testing parsers. BIT 12, 3, 1973, 366–375.Google Scholar
  34. (Ros64).
    Rosen S. A compiler-building system developed by Brooker and Morris. Communications of the ACM 7, 7, July 1964, 403–413.Google Scholar
  35. (Sch73).
    Schneider V. B. Private communication, September 1973.Google Scholar
  36. (Wir71).
    Wirth N. The programming language Pascal. Acta Informatica 1, 1971, 35–63.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1977

Authors and Affiliations

  • Olivier Lecarme
    • 1
  1. 1.Université de NiceNiceFrance

Personalised recommendations