Abstract
Although a course in Compiler Development is common in both undergraduate and graduate computer science curriculum there has been little agreement on how to achieve a balance between theory and practice within a single semester course. This article proposes a new approach to teaching compiler development, to enable students to gain both the experience of writing a modular compiler and a theoretical background in compiler design, within the scope of a one semester course.
The approach advocated is based upon the integration of the course project and the course lectures, enabling students to develop a modular compiler for a general purpose high level algorithmic language. The course project uses a simple parser generator and syntax-directed translation techniques to minimize the programming effort without oversimplifying the design of the compiler.
The course was taught at Southern Methodist University to a senior undergraduate class, who developed and debugged useable compilers without the common symptom of major programming projects: programming to meet a deadline rather than a design.
- 1 Ahmad, S.I, Design and Use of Instructional Tools for Computer Science SIGCSE Bulletin. 10:1 (1978 February), pp. 1-6. Google Scholar
Digital Library
- 2 Aho, A.V., and Uhlmann, J.D. Principles of Compiler Design. Addison-Wesley, 1977. 604p. {ISBN O- 201-00022-9} Google Scholar
Digital Library
- 3 Austing, R.H., et. al. Curriculum Recommendations for the undergraduate Program in Computer Science. SIGCSE Bulletin. 9:2 (1977 June), pp. 1-16. Google Scholar
Digital Library
- 4 Gries, D. Compiler Construction for Digital Computers. John Wiley, 1971 {ISBN 0-471-32776-X}. Google Scholar
Digital Library
- 5 Nori, K.V., Amman, U., Jensen, K., and Nageli, H.H. "The PASCAL 'P" Compiler: Implementation Notes". Technical Report Number 10, Berichte des Instituts fur Informatik, Eidgenossische Technische Hochschule, Zurich, 1974 December. 57p.Google Scholar
- 6 Shapiro, H.D., and Mickunas, M.D. A New Approach to Teaching a First Course in Compiler Construction. SIGCSE Bulletin. 8:2 (1976 February), pp. 158-166. Google Scholar
Digital Library
Index Terms
Teaching Compiler Development
Recommendations
Teaching how to teach computational thinking
ITiCSE 2018: Proceedings of the 23rd Annual ACM Conference on Innovation and Technology in Computer Science EducationComputational Thinking is argued to be an essential skill for the workforce of the 21st century. As a skill, Computational Thinking should be taught in all schools, employing computational ideas integrated into other disciplines. Up until now, questions ...
Teaching Compiler Development
SIGCSE '79: Proceedings of the tenth SIGCSE technical symposium on Computer science educationAlthough a course in Compiler Development is common in both undergraduate and graduate computer science curriculum there has been little agreement on how to achieve a balance between theory and practice within a single semester course. This article ...
Teaching TAs To Teach: Strategies for TA Training
SIGCSE '20: Proceedings of the 51st ACM Technical Symposium on Computer Science Education"The only thing that scales with undergrads is undergrads". As Computer Science course enrollments have grown, there has been a necessary increase in the number of undergraduate and graduate teaching assistants (TAs, and UTAs). TA duties often extend ...






Comments