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. SIGCSE ’10: The 41st ACM Technical Symposium on Computer Science Education (Mar. 2010).

BibTeX Reference

@inproceedings{sondag2010frances,
  author = {Tyler Sondag and Kian L. Pokorny and Hridesh Rajan},
  title = {Frances: A Tool For Understanding Code Generation},
  booktitle = {SIGCSE '10: The 41st ACM Technical Symposium on Computer Science Education},
  location = {Milwaukee, WI},
  month = {March},
  year = {2010},
  entrysubtype = {conference},
  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.
  }
}