Part-Time Programs in Engineering and Applied Science, Johns Hopkins University

Compiler Design
605.432


Course Description
This course explores the principles, algorithms, and data structures involved in the design and construction of compilers. Topics include context-free grammars, lexical analysis, parsing techniques, symbol tables, error recovery, code generation, and code optimization. Each student will implement a compiler for a small programming language. 

Syllabus

  1. Overview of a Compiler
  2. Lexical Analysis: FSA's
  3. Non-deterministic FSA's
  4. Push-down Machines
  5. Grammars: LL(1), LR(1), Attributed
  6. More on Grammars and Parsing
  7. Mid-term Exam
  8. LL(1) Parsers
  9. LR(1), SLR(1) and LALR(1) Parsers
  10. Intermediate Code Generation
  11. More on Code Generation
  12. Type Checking
  13. Code Optimization
  14. Final Exam

Prerequisites
There are no specific prerequisites for this course.

Instructor
Ali Behforooz is a professor of computer science and the Director of the graduate program in computer science at Towson State University. He has taught the compiler design course(s) for JHU/APL since 1988. His area of interest include software engineering and compiler design. He has written seven textbooks in computer science. His last textbook is Fundamentals of Software Engineering, published by Oxford University Press, 1996.

E-mail the instructor.

Computer Lab Requirements
Knowledge of C LEX YACC.

Textbook
Compiler design in C by HOLUB, Prentice Hall

More information is available on Dr. Behforooz at his homepage.


Return to Computer Science Courses | Computer Science  | Part-Time Engineering

updated 8/14/1999