skip to main content
10.1145/1734263.1734269acmconferencesArticle/Chapter ViewAbstractPublication PagessigcseConference Proceedingsconference-collections
research-article

Frances: a tool for understanding code generation

Published: 10 March 2010 Publication History

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.

References

[1]
aiSee - Graph Visualization. http://www.absint.com/aisee/.
[2]
Computing curricula 2008: An interim revision of cs 2001. http://www.acm.org/education/curricula/ComputerScience2008.pdf.
[3]
Frances: Control FLow Graph Generator. http://www.cs.iastate.edu/~sapha/tools/frances/.
[4]
ICD-C Compiler Framework. http://www.icd.de/es/icd-c/.
[5]
A. Aiken. Cool: a portable project for teaching compiler construction. SIGPLAN Not., 31(7):19--24, 1996.
[6]
F. E. Allen. Control flow analysis. In Symposium on Compiler optimization, pages 1--19, 1970.
[7]
C. Bredlau and D. Deremer. Assembly language through the java virtual machine. In SIGCSE, 2001.
[8]
M. L. Corliss and E. C. Lewis. Bantam: a customizable, java-based, classroom compiler. In SIGCSE, 2008.
[9]
Free Software Foundation. Gnu binutils: a collection of binary tools, 2009. http://www.gnu.org/software/binutils/.
[10]
J. Ellson et al. Graphviz - open source graph drawing tools. Graph Drawing, 2001.
[11]
M. C. Loui. The case for assembly language programming. IEEE Transactions on Education, E-31(3):160--164, 1988.
[12]
S. S. Muchnick. Advanced Compiler Design & Implementation. Academic Press, 1997.
[13]
R. D. Resler and D. M. Deaver. Vcoco: a visualisation tool for teaching compilers. SIGCSE Bull., 30(3):199--202, 1998.
[14]
B. Titzer, D. Lee, and J. Palsberg. Avrora: Scalable sensor network simulation with precise timing. In Information Processing in Sensor Networks (IPSN), 2005.
[15]
T. L. Naps et al. Exploring the role of visualization and engagement in computer science education. In ITiCSE-WGR, 2002.
[16]
L. Xu. Language engineering in the context of a popular, inexpensive robot platform. In SIGCSE, 2008.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SIGCSE '10: Proceedings of the 41st ACM technical symposium on Computer science education
March 2010
618 pages
ISBN:9781450300063
DOI:10.1145/1734263
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 10 March 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. code generation
  2. compilers
  3. frances
  4. visualization

Qualifiers

  • Research-article

Conference

SIGCSE10
Sponsor:

Acceptance Rates

Overall Acceptance Rate 1,787 of 5,146 submissions, 35%

Upcoming Conference

SIGCSE TS 2025
The 56th ACM Technical Symposium on Computer Science Education
February 26 - March 1, 2025
Pittsburgh , PA , USA

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)9
  • Downloads (Last 6 weeks)0
Reflects downloads up to 17 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Teaching language processing with the PAMOJA frameworkScience of Computer Programming10.1016/j.scico.2023.102959229:COnline publication date: 1-Jul-2023
  • (2019)A Project-based Learning Experience in a Compilers CourseProceedings of the ACM Conference on Global Computing Education10.1145/3300115.3309502(136-142)Online publication date: 9-May-2019
  • (2017)ParseITProceedings of the 10th Annual ACM India Compute Conference10.1145/3140107.3140123(115-120)Online publication date: 16-Nov-2017
  • (2011)Frances-AJournal of Computing Sciences in Colleges10.5555/1961574.196163226:5(283-292)Online publication date: 1-May-2011
  • (2010)Connecting high-level programming constructs to assembly language using FrancesJournal of Computing Sciences in Colleges10.5555/1747137.174719025:5(282-283)Online publication date: 1-May-2010

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media