Teaching Software Engineering in a Compiler Project Course
Skip to main content
Open Access Publications from the University of California

Teaching Software Engineering in a Compiler Project Course


A compiler course with a term-long project is a staple of many undergraduate computer science curricula and often a cornerstone a program's applied-engineering component. Software engineering expertise can help a student complete such a course, yet that expertise is often lacking. This problem can be addressed without detracting from the core class material by integrating a few simple software engineering practices into the course. A domain-specific, risk-driven approach minimizes overhead and keeps the compiler material in focus, while treating the project as a ``real world'' enterprise reinforces key engineering lessons. The method might be called ``syntax-directed software engineering'', being driven by a specification centered around a BNF-style grammar. Engineering lessons are reinforced with general engineering principles and contextualization of the subject matter. The approach can be taught without substantial software engineering background. The approach of domain-specific risk-driven software engineering can be applied in courses such as operating systems by redesigning the practices around the its domain.

Pre-2018 CSE ID: CS2000-0659

Main Content
For improved accessibility of PDF content, download the file to your device.
Current View