bcc: A suite of Tools for Introducing Compiler Construction Techniques in the Classroom
Keywords:
Classroom examples, compiler construction, interpreters, programming languages design, virtual machinesAbstract
Teaching compiler construction principles in one-semester introductory courses is a very important and complex topic in the computer sciences curriculum. Most of the books are devoted to developing toy, mini or classroom language, but it is almost impossible to cover all material in one-semester course. In this paper, the bcc mini-language and its suite of tools are described. They are completely implemented in Python by hand as command line applications. The bcc language is composed of independent programs for executing different phases of the compiler. The suite of applications is the cornerstone of a compiler construction course, and they allow us to explain and exemplify theoretical and practical aspects, and to develop the capstone project of the course.