Compiler Construction
DOI:
https://doi.org/10.53555/nncse.v2i5.447Keywords:
Lex, Yacc, Parser, Parser-Lexer, Symptoms &AnomaliesAbstract
Compiler construction is a widely used software engineering exercise, but because most students will not be compiler writers, care must be taken to make it relevant in a core curriculum. The course is suitable for advanced undergraduate and beginning graduate students. Auxiliary tools, such as generators and interpreters, often hinder the learning: students have to fight tool idiosyncrasies, mysterious errors, and other poorly educative issues. It is intended both to provide a general knowledge about compiler design and implementation and to serve as a springboard to more advanced courses. Although this paper concentrates on the implementation of a compiler, an outline for an advanced topics course that builds upon the compiler is also presented. We introduce a set of tools especially designed or improved for compiler construction educative projects in C.
References
William M. WaiteDepartment of Electrical EngineeringUniversity of ColoradoBoulder, Colorado 80309USAemail: William.Waite@colorado.edu.
GerhardGoosInstitutProgrammstrukturen und DatenorganisationFakultat fur Informatik
Universit•at KarlsruheD-76128 KarlsruheGermanyemail: ggoos@ipd.info.uni-karlsruhe.de
Niklaus WirthThis is a slightly revised version of the book published by Addison-Wesley in 1996ISBN 0-201-40353-6Zürich, November 2005.
Aho, Alfred V., Hop croft, J. E., and Ullman, Jeffrey D. [1974]. The Design andAnalysis of Computer Algorithms.Addision Wesley, Reading, MA.
Aho, Alfred V. and Johnson, Stephen C. [1976]. Optimal code generation for expression trees. Journal of the ACM, 23(3):488501.
Aho, Alfred V. and Ullman, Jeffrey D. [1972]. The Theory of Parsing, Translation,
and Compiling. Prentice-Hall, Englewood Cliffs.
Aho, Alfred V. and Ullman, Jeffrey D. [1977]. Principles of Compiler Design.Addision
Wesley, Reading, MA.
Ross, D. T. [1967]. The AED free storage package. Communications of the ACM, 10(8):481492.
Rutishauser, H. [1952]. Automatische Rechenplanfertigung bei Programm-gesteuerten.
Rechenmaschinen. Mitteilungen aus dem Institut four Angewandte Mathematik der ETHZurich, 3.
Sale, Arthur H. J. [1971]. The classi_cation of FORTRAN statements. Computer Journal,14:1012.
Sale, Arthur H. J. [1977]. Comments on 'report on the programming language Euclid'.ACM SIGPLAN Notices, 12(4):10.
Sale, Arthur H. J. [1979]. A note on scope, one-pass compilers, and Pascal. Pascal News,15:6263.
Salomaa, Arto [1973]. Formal Languages. Academic Press, New York.
Samelson, K. and Bauer, Friedrich L. [1960]. Sequential formula translation. Communicationsof the ACM, 3(2):7683.
Satterthwaite, E. [1972]. Debugging tools for high level languages. Software{Practice and Experience, 2:197217.
Scarborough, R. G. and Kolsky, H. G. [1980]. Improved optimization of FORTRAN
object programs. IBM Journal of Research and Development, 24(6):660676.
Schulz, Waldean A. [1976]. Semantic Analysis and Target Language Synthesis in a Translator.Ph.D. thesis, University of Colorado,
Boulder, CO.
Seegm•uller, G. [1963]. Some remarks on the computer as a source language machine.
In Popplewell, C.M., editor, Information processing 1962, pages 524{525. North-Holland,Amsterdam, NL.
Downloads
Published
Issue
Section
License

This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
You are free to:
- Share — copy and redistribute the material in any medium or format for any purpose, even commercially.
- Adapt — remix, transform, and build upon the material for any purpose, even commercially.
- The licensor cannot revoke these freedoms as long as you follow the license terms.
Under the following terms:
- Attribution — You must give appropriate credit , provide a link to the license, and indicate if changes were made . You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.
Notices:
You do not have to comply with the license for elements of the material in the public domain or where your use is permitted by an applicable exception or limitation .
No warranties are given. The license may not give you all of the permissions necessary for your intended use. For example, other rights such as publicity, privacy, or moral rights may limit how you use the material.