ICS 142: Compilers and Interpreters

Summer Session II, August 6 – September 12, 2001


Summary Papers

This is a list of approved topics for summary papers and the students who signed up for it. Note that the deadline for proposing a topic is August 27, 2001 at midnight. You don't have to have a final topic by then, but a general idea would be good; and I need to have your proposal in email.

Author Topic Pages Notes
Montgomery Lim Table-Driven LL(1) Parsing 6 Generation of LL(1) parsing table from a given grammar; use of the resulting table to parse an input string.
Open! Table-Driven LR(1) Parsing 6 Generation of LL(1) parsing table from a given grammar; use of the resulting table to parse an input string.
Open! Optimization of Subprograms 6 Discussion of the challenges involed in making procedure calls efficient; particularly passing of parameters (stack, registers, register windows, caller saved, callee saved, etc.) and inlining.
Amir Sheibani Just-in-Time Compilers 6 Overview of what a just-in-time compiler is and when it is useful; discussion of particular JITs or technologies, e.g. for Java.
Richard Ngoc Huynh Garbage Collection 6 Description of garbage collection and when it is useful; discussion of run-time support the compiler has to provide; discussion of two simple techniques (e.g. reference counting, mark-and-sweep).
Marisa Takeuchi A Technical History of Pascal and It's Compilers 6 Discussion of the various early Pascal implementations and their characteristics, challenges faced during development, etc.
Karen Chu Pending: Implementation Aspects of Scripting Languages 6 Overview of what scripting languages are and what they are good for; discussion of typical implementation as interpreters; performance tradeoffs; etc.
Gary De La Cruz Pending: Optimization Techniques 6
Cathy Goings Adaptive Compilers and Dynamic Reoptimization 6 Overview of what adaptive compilers are, and when they are useful; contrast dynamic profiling to earlier static approaches; challenges for optimizing a running program; etc.
Open! Parallelizing Compilers 6 Approaches to identifying parallelism automatically in the compiler, either for "real" parallel computers, or for "networks of workstations", or even for just "instruction level parallelism" as found in many modern processors.
Lili Murtha Pending 6
Amy Lee Bootstrapping 6 Description of the bootstrapping process and some of the problems associated with it; self-compilation as a testing criterion; etc.
Stephan Pak Implementation of Object-Oriented Languages 6 Challenges for implementing object-oriented languages, i.e. type tests and dynamic dispatch; dispatch tables for single and multiple inheritance; etc.
Raphael Chan Pending: Parser Generators in Practice 6/4 Describe, compare, and evaluate several common parser generators; e.g. Yacc/Bison, ANTLR, Coco. You will probably have to actually use the tools, and if you do 4 pages are enough.
Rusil G. Patel Pending: Optimization Techniques 6
Ankit Nayyar Pending: Implementing Functional Languages 6 Describe specific properties of functional languages that need to be supported efficiently by the compiler; e.g. first-class functions, generating functions at run-time, etc.
Andres Hernandez Pending: Automated Generation of Deterministic Finite Automata 6 How can we go from a regular expression (language, grammar) to a DFA automatically?
Kanwar Gill Pending: Mobile Code 6
Thysy Michael Trinh Pending 6
Nima Khoshini Register Allocation Techniques 6 Overview of the basic problem of register allocation, discussion of a number of techniques that have been proposed/used and how they compare.
Jim Ling A Technical History of C and It's Compilers 6

Note that just because you have a topic does not mean you also have to hand in; if you don't, you'll just receive 0 points and that's it.


Guidelines (Tentative)

Summary papers are single spaced and can not contain any "excessive" white space. Note that this includes graphics as well: If you write a 6 page paper and include 2 pages of pictures that are not essential to your discussion, you will probably not get any points for those two pages. Papers in conferences such as PLDI or POPL are a good example for what the paper should "look" like.

Include title, author, student id, and email address on the first page. Introduce the topic in one or two paragraphs, but don't write an abstract. Then write the "meat" of your paper, going from the general to the specific. Finally, write one or two paragraphs of conclusions that can be drawn; you can include your opinion as well, but be careful not to start ranting. Don't forget to include a bibliography, but don't just add citations to fill space either; that will show.

Good places to start researching papers (if your topic is not covered in text books or just to get a feeling for "current" issues) include the ACM Digital Library and NEC's Citeseer. Sometimes even a search on Google can help a lot.


Copyright © 2001 Peter H. Fröhlich. All rights reserved.
$Id: papers.html,v 1.10 2002/01/08 18:50:03 phf Exp $
Valid XHTML 1.0!