Compiler 2013

From ACM Class Wiki
Jump to: navigation, search



Compiler 2013: Introduction by example

Compiler 2013: An appetizer (important)

Compiler 2013: Tokens

Compiler 2013: Grammar (typedef example)

Compiler 2013: Types

Compiler 2013: Semantic specification

Compiler 2013: Mid-term specification

Compiler 2013: Standard libraries

Compiler 2013: Command-line options

Students who are going to use a language other than Java MUST apply explicitly. Whatever language you use, only the following tools are allowed: lex, yacc, Quex, flex, Bison, re2c, lemon, JFlex, CUP, ANTLR (v3 or v4), Ragel, Gson.


Date Lecture Project Code Review Deadline
2013/03/15 7PM Introduction, Overview, Lexical Analysis, Parsing Syntactic Analysis 2013/03/22 7PM 2013/03/29 6PM
2013/03/29 7PM Syntax-Directed Translation, Type Checking Semantic Analysis N/A 2013/04/19 6PM
2013/04/12 7PM Intermediate-Code Generation, Run-Time Environments IR Generation N/A 2013/04/26 6PM
2013/04/19 7PM SSA, Code Generation Code Generation N/A 2013/05/10 6PM
2013/05/03 7PM Liveness Analysis and Register Allocation Register Allocation 2013/05/24 7PM 2013/05/31 6PM


  • correctness (30 points)
  • performance (20 points)
  • code review (10 points)
  • bonus report (40+ points)


  • Bootstrapping C (will get full score)
  • Pretty printer
  • Parser combinator
  • Parse with derivatives
  • Interpreter (partial evaluation)
  • Continuation-passing style (CPS)
  • Static analyzer (abstract interpreter)
  • Meta interpreter (eval)
  • Object-oriented programming
  • Higher-order functions
  • Concurrency and scheduling
  • Compilation to Intel x86 or JVM
  • Garbage collection
  • Optimization
  • Refine Wikipedia or translate into Chinese

In order to get bonus, students are required to submit a full-length paper or a technical report. If there's not much novelty in your work, you have to survey related work extensively. Submissions must be in ACM proceedings format, 9-point type, and may not exceed 8 pages (all inclusive). Word and LaTeX templates for this format are available at . Submissions must be in PDF and printable on US Letter and A4 sized paper.

Version Control

  • You are REQUIRED to use the provided Subversion service.
  • If you prefer git, you can use git-svn.
  • You are NOT allowed to publish your code on the Internet.

Suppose your login name for ACM Xiaoyou is "xjia" (without the quotes).

If fortunately (or unfortunately) you are using Windows, you may prefer TortoiseSVN. However, a Linux box or a Mac is highly recommended.


Google Group





Name Email Phone
贾枭 xjia[at] 壹伍貳 1671 2262
杨欢 yanghuanflc[at] 壹捌陸 1699 3631
戴勃 doubledaibo[at] 壹捌捌 0196 9501
蒲悠儿 puyouer[at] 壹捌捌 0196 5683
Personal tools