Last update: Jan 22, 2021
This upper-level undergraduate class (also available for graduate credit) extends and
integrates material from prerequisite courses to build a compiler for a non-trivial subset of the Java
programming language. Java is also the implementation language for the compiler.
Upon completion of this course, you should:
- Understand the theory and practice of compilers, linkers, debuggers, and program execution by
hardware or abstract machines.
- Appreciate the effect of trade-offs in programming language design and computer architecture
on program compilation and the run-time support system.
- Have gained additional experience with the design and implementation of a large and complex
program using Java.
- Be prepared for advanced study in programming languages and optimizing compilers.
- We will use Piazza for offline discussions. You should have received an invitation via
email to join our Piazza site: https://piazza.com/unc/spring2021/comp520/home
- Written assignment WA1 should be submitted using gradescope. Additional information will follow.
The deadline is extended to Thursday Jan 21 at 11 PM.
- (for Thu Jan 21) PLPJ Skim Chapter 1 - Introduction (pp 1 - 25).
- (for Tue Jan 26) PLPJ Skim PLPJ Chapter 3 (pp 55 – 70). Study PLPJ Chapter 4 Secns 4.1, 4.2 (pp 73 – 83).
- (For Mon Feb 8) PA1 - syntactic analysis
Administrative details, such as prerequisites, exam dates, honor code,
and the sequence of topics covered in the course can be found in the
Programming Language Processors in Java: Compilers and Interpreters,
by David Watt and Deryck Brown, Prentice Hall, 2000 (ISBN 0-130-25786-9).
Watt & Brown, Programming Language Processors in Java
This page is maintained by
Send mail if you find problems.