CSCI 435 Compiler Design



Instructor: Dr. Ray Schneider

Office: McKinney 231

Office Hours: 2:00-3:00 Daily or by appointment.

Ph: x5623




Compiler Construction ― Principles and Practice by Kenneth C. Louden



The Compiler Design course is a capstone course which draws together the many elements of Computer Science in the context of a complex design entity, the compiler, which uses many sophisticated data structures and algorithms to achieve a highly focused and detailed goal.  The student will be exposed to the following:

  • The principles and techniques that make up modern compiler design including lexical analysis, syntactical analysis, parsing context-free-grammars and building annotated syntax analysis trees.
  • The creation of their own languages and language analyzers
  • The generation of back end, code generation with an emphasis on translators and interpreters.
  • Memory management techniques including data allocation with explicit deallocation and basic garbage collection methods.
  • Source language data representation and handling, routines and their activation, and code generation for object oriented and imperative programming paradigms.


Attendance is required and will be checked each period and excessive lateness and absenteeism may result in grade reduction or failure.



Students are expected to spend between two and three hours outside of class for each class hour (six to nine hours of outside of class study per week) working on exercises in the text to augment the class material.  The suggested general assignment is to work all the exercises in each section/chapter.  If you find that you do not understand, then you should ask questions in class so that I know of your difficulty and can go over some of the exercises in class.  A project will form part of the class assignments and you will be expected to give a presentation on your project.


You will be expected to maintain a programmer's log which documents your work on the exercises.  These will be maintained as directed by the instructor and will be examined and graded as part of the course work.


In addition to the assigned exercises there will be two or three tests during the semester and an optional final exam at the end of the semester.



Grading will by by clusters.  The completion of exercises will form one cluster and test results and project results will form the other clusters.  Cluster grading is done by sorting the grades into descending order and applies declining weights to the grades so that poor results are weighted less than good results.  Extra credit may be assigned at the discretion of the instructor but in generally will not be worth more than half a grade point.