Proceedings of the 34th SIGCSE Technical Symposium on Computer Science Education 2003
DOI: 10.1145/611892.611974
|View full text |Cite
|
Sign up to set email alerts
|

A compiler for teaching about compilers

Abstract: Projects in which students write a small compiler are common in compiler design courses, but even a small compiler can be daunting to students with no prior compiler-writing experience. When I recently taught compiler design, I developed a very small language with a highly modular compiler, focusing the project on implementing the core parts of a compiler without requiring students to build all the infrastructure from scratch. This paper describes the language and its compiler, and their successes (and occasio… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
14
0

Year Published

2004
2004
2019
2019

Publication Types

Select...
7

Relationship

0
7

Authors

Journals

citations
Cited by 24 publications
(14 citation statements)
references
References 8 publications
0
14
0
Order By: Relevance
“…Because of the size and complexity of a compiler, there is a rich body of work documenting approaches to teaching the course. A selection of recent work includes attempts to make compiler construction more manageable by using tiny languages [2,6], more relevant by broadening language translation [4,16], more viable in a broadening computer science curriculum [15], or more applicable to other courses [5]. These approaches focus on the process of constructing a compiler and thereby teach the underlying fundamental concepts that enable translation.…”
Section: Prior Workmentioning
confidence: 99%
“…Because of the size and complexity of a compiler, there is a rich body of work documenting approaches to teaching the course. A selection of recent work includes attempts to make compiler construction more manageable by using tiny languages [2,6], more relevant by broadening language translation [4,16], more viable in a broadening computer science curriculum [15], or more applicable to other courses [5]. These approaches focus on the process of constructing a compiler and thereby teach the underlying fundamental concepts that enable translation.…”
Section: Prior Workmentioning
confidence: 99%
“…Yet our project differs from most of its peers [2,4,6] in several regards, starting with the motivations: compiler construction is a by-product, not the primary goal. This project was introduced because it met a set of requirements that were not satisfied by the existing (shorter) projects:…”
Section: Yet Another Compiler Project?mentioning
confidence: 99%
“…In contrast to other approaches [6], we kept the same ambitions as Andrew W. Appel: the source language is fairly complete, and we target a genuine (mips) assembly language. In addition to meeting the aforementioned goals (Section 2), the compiler has to: Never Repeat Itself Every stage must present/exercise something new.…”
Section: What Compiler Design?mentioning
confidence: 99%
“…1 An alternative would be to create a simpler language such as MinimL [10], which was built to contain just enough features to be interesting, but not so many that students are overwhelmed. We opt for the subset approach because we feel that students are more excited about a language which they might imagine using in future employment.…”
Section: Student Teamsmentioning
confidence: 99%