Compiler Design

Course number: 
CIS 4324
Fall 2015

CIS 2168 and CIS 2166

Parr. The Definitive ANTLR4 Reference. The Pragmatic Programmers. ISBN 978-93435-699-9
Parr. Language Implementation Patterns. The Pragmatic Programmers. ISBN 978-1-934356-45-6
Topics covered: 
Lexical analysis
Syntatic analysis (top-down and bottom-up)
The Java Virtual Maching architecture
Code generation
Course goals: 
This course will teach you what a compiler is and how it works. Topics covered include:
  • How we specify what a legal program is in a language (syntax)
  • How we specify what a legal program does (semantics)
  • How a computer uses these specifications to:
    • Recognize a legal program
    • Translate this program into the target language

Students will develop a working compiler for a simple object-oriented programming language using an Object-Oriented approach, using Java, and the compiler construction tool ANTLR. The target will be the Java Virtual Machine.
Attendance policy: 
Attendance to all meetings of the class is mandatory
Accomodations for Students with Disabilities: 
Any student who has a need for accommodation based on the impact of a documented disability, including special accommodations for access to technology resources and electronic instructional materials required for the course, should contact me privately to discuss the specific situation by the end of the second week of classes or as soon as practical. If you have not done so already, please contact Disability Resources and Services (DRS) at 215-204-1280 in 100 Ritter Annex to learn more about the resources available to you. I will work with DRS to coordinate reasonable accommodations for all students with documented disabilities. (
Student and Faculty Academic Rights and Responsibilities: 
Freedom to teach and freedom to learn are inseparable facets of academic freedom. The University has a policy on Student and Faculty and Academic Rights and Responsibilities (Policy #03.70.02) which can be accessed through the following