Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Frances: A Tool For Understanding Code Generation.
[go: Go Back, main page]

Frances: A Tool For Understanding Code Generation.


These pages describe work carried out on design implementation, and applications of the Frances tool.

News

March 2010: Support added for MIPS assembly and x86 intel syntax. New

January 2010: Tutorial on Frances tool accepted for CCSC 2010. New

October 2009: Paper on Frances tool accepted for SIGCSE 2010.

August 2009: Technical Report: Frances: A Tool For Understanding Code Generation , ISU, 2009.

Frances: A Tool For Understanding Code Generation

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.

Frances web tool

Example of Frances tool
Figure 1: Example usage of Frances tool. Left side shows user input code and legend. Right side shows example output.


If you find any problems, would like to see any features added, or just have general comments, please email us at sondag@cs.iastate.edu. Also, we are very interested to hear who is using our tool and in what ways. This will help us develop future versions of this tool.


Why did we develop Frances?

Frances was developed originally for debugging as part of a larger framework. After using this tool, it was clear that it was extremely helpful with understand assembly language and control flow. With this is mind, we aimed to develop this tool further with these ideas in mind. Furthermore, a major goal was to make the user interface as simple as possible. The main features of Frances are:

  • Coloring based on control structures
  • Edges drawn to denote types of control paths
  • Layout of blocks same as assembly (list of instructions)
  • Very simple web based interface
To the best of our knowledge, similar-tools do not combine all of these.



Frances Uses

Frances is currently being used for both research and in the classroom. In the classroom, these uses include learning and understanding the following concepts:

  • Code generation
  • Control flow
  • Assembly language
  • Code optimization



Tool Name

We named the tool Frances in honor of Frances E. Allen . She received the Turning award for pioneering contributions to the theory and practice of optimizing compiler techniques that laid the foundation for modern optimizing compilers and automatic parallel execution.


  1. A large part of this text is taken from our latest technical report and our SIGCSE '10 paper.