Frances: A Tool For Understanding Code Generation

By: Tyler Sondag, Kian L. Pokorny, and Hridesh Rajan

PDF Download Download Paper
Slides

Abstract

Compiler and programming language implementation courses are integral parts of many computer science curricula. However, the range of topics necessary to teach in such a course are difficult for students to understand and time consuming to cover. In particular, code generation is a confusing topic for students unfamiliar with low level target languages. We present Frances, a tool for helping students understand code generation and low level languages. The key idea is to graphically illustrate the relationships between high level language constructs and low level (assembly) language code. By illustrating these relationships, we take advantage of the students existing understanding of some high level language. We have used Frances in a compiler design course and received highly positive feedback. Students conveyed to us that Frances significantly helped them to understand the concepts necessary to implement code generation in a compiler project.

ACM Reference

Sondag, T. et al. 2010. Frances: A Tool For Understanding Code Generation. Proceedings of the 41st ACM technical symposium on Computer science education, SIGCSE, Milwaukee, Wisconsin, USA (2010), 12–16.

BibTeX Reference

@inproceedings{SondagPokornyRajan2010,
  author = {Tyler Sondag and Kian L. Pokorny and Hridesh Rajan},
  title = {Frances: A Tool For Understanding Code Generation},
  booktitle = {Proceedings of the 41st ACM technical symposium on Computer science education, SIGCSE, Milwaukee, Wisconsin, USA},
  pages = {12--16},
  year = {2010},
  publisher = {{ACM}},
  editor = {Gary Lewandowski and Steven A. Wolfman and Thomas J. Cortina and Ellen Lowenfeld Walker},
  doi = {10.1145/1734263.1734269},
  abstract = {
  Compiler and programming language implementation courses are integral parts of
  many computer science curricula. However, the range of topics necessary to
  teach in such a course are difficult for students to understand and time
  consuming to cover. In particular, code generation is a confusing topic for
  students unfamiliar with low level target languages. We present Frances, a
  tool for helping students understand code generation and low level languages.
  The key idea is to graphically illustrate the relationships between high level
  language constructs and low level (assembly) language code. By illustrating
  these relationships, we take advantage of the students existing understanding
  of some high level language. We have used Frances in a compiler design course
  and received highly positive feedback. Students conveyed to us that Frances
  significantly helped them to understand the concepts necessary to implement
  code generation in a compiler project.},
}