2.9 Project 1: Paper

Consult the paper policy for details of the turn-in and preparation process.
Choose one of the following two options.

Depth

Choose one topic of compilation from the class to explore in greater depth and write a report about it. Suggested topics are: register allocation, data/control-flow analysis, loop optimization, vectorization, blocking, or efficient continuation compilation. If you want to choose another topic, run it by me first.

Your report should introduce and define the topic (at least one page). It should discuss its development in the field by punctuating the history with particular examples of innovations and deployments. (Each such section should probably be at least a page, maybe more.) End with a brief summarization (roughly a page) of open issues and ideas that you have for developing it (this last part is the only place where your opinion can enter in.)

Breadth

Choose a topic related to compilation, but not strictly about compilation, that we won’t touch in this class and write a report about it. Suggested topics are: JIT, typed intermediate languages, typed assembly, compiler verification, linking, language runtime design, hardware synthesis, or the positive/negative influence of computer architecture on compilers.

Use the same structure as the "Depth" option.