Frances: A Tool For Understanding Code Generation
By: Tyler Sondag, Kian L. Pokorny, and Hridesh Rajan
Download PaperSlides
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.
}
}