Project 4: Implement Something
- Proposal due: November 20, 2019
- Report due: December 18, 2019
Overview
The final 6120 project is the most open ended one of the semester. You will design, implement, and evaluate a language implementation effort of your choice. The requirements are:
- The project must be based on research on language implementation. It cannot, for example, be about formalizing language semantics or about implementing a deep neural network.
- It must be about research on language implementation. It has to be about advanced topics in the compilers literature, not "textbook" undergraduate-level topics. Implementing a straightforward AST-walking interpreter for a made-up DSL, for example, is not ambitious enough.
- It must have a rigorous, convincing empirical evaluation. See those SIGPLAN evaluation guidelines for details.
Unlike on the pages for previous projects, there is no "ideas" section here. Designing the research is up to you. But here are some general directions you might consider:
- Reproduce one of the papers that we read during the semester—or one aspect thereof.
- Do something more elaborate with LLVM than you did in Project 3. In the limit, consider implementing an optimization pass that real-world users might actually want to adopt.
- Exploit your ongoing research. If it's already about language implementation, then just pick a scope so that the implementation and evaluation can fit within the project boundaries. If it's not, then tack on a language implementation angle to make it fit the 6120 topic.
- Extend your Project 1 implementation so it takes on a more researchy flavor and evaluate it with a serious benchmark suite.
As always, the output of your project consists of open-source code and a post on the course blog. See the general project instructions for details.