CSC 4181 Compiler Construction Spring 2017


001  T/Th 11:30-12:45, Mendel G90
002  T/Th   1:00-  2:15, Mendel G90
Instructor Dr. Thomas Way
160A Mendel Science Center
Skype:  DrTomWay
Office hours (See my web site)
Teaching Assistant Priyanka Kondapalli
Peer Tutor schedule
Textbooks No required textbook as we will be using purely online resources. This will require extensive online reading and also independent topic exploration.
Web site and follow the link for CSC 4181
Catalog Description
Lexical and syntactical analysis; code generation; error recovery; recursive descent compilation; handling a run time environment. Prerequisite: CSC 1600 or CSC 2405. (3 credits)
Course Description
The only meaningful way to learn about compilers is to build them. We will spend a lot of time both inside and outside of class doing just that, so be sure to come to class ready to do some hands-on compiler construction. There will be lectures for sure, and some additional homework assignments, quizzes and tests, but the main focus will always be on the practical application of all that we explore to enable the construction of a working compiler.
  • Establish an understanding of the concepts and tools used for the development of compilers and other language translation software.
  • Provide experience in the development of a complete, working compiler for a substantial language.
  • Explore the connections between compilers and formal languages, data structures, and computer architecture.
  • Gain an understanding of the principles of software engineering and software development.
Learning Outcomes By the end of the semester, the student will be able to:
  1. Describe stages of compilation.
  2. Read and write lexical descriptions for tokens.
  3. Convert RE to NFA/DFA.
  4. Code a lexical analyzer using a tool or directly.
  5. Read syntactic descriptions of a language as CFG/BNF/EBNF.
  6. Code parser using a tool or directly.
  7. Compute parse tables.
  8. Understand attribute grammars, semantic actions, and attribute evaluation.
  9. Create and manage symbol tables.
  10. Generate code for a language.
Planned Topics
  • Introduction
  • Lexical analysis
  • Grammars, Top-down parsing methods
  • Bottom-up parsing techniques
  • Automatic compiler generation tools
  • Symbol tables
  • Semantic Analysis, Attribute grammars, Syntax-directed translation, Intermediate code generation
  • Code generation: expressions and simple control structures
  • Code generation: records and arrays
  • Code generation: procedures and functions
  • Runtime memory management
  • Code optimization (if time)
  • Error detection and recovery (if time)
  • Compilation of object-oriented languages (if time)
  • Java Virtual Machine (JVM) (if time)
Grading policy
15%  Homework assignments, quizzes, etc.
60%  Programming projects
20%  Final programming project
  5%  Participation (attendance, class discussion, intellectual contribution to class)
Final grades
92 A 88 B+ 78 C+ 68 D+
90 A- 84 B 74 C 64 D
80 B- 70 C- 60 D-
Makeup Policy
No missed tests without prior excuse. Each case will be handled separately based on its own merits. Makeup tests will be much more difficult than regularly scheduled tests. Each student is responsible for what is covered and assigned in any classes which they miss. Abuse of this policy will result in a loss of leniency.
Late Assignment Policy
No assignments will be accepted late without the direct consent of the instructor prior to the due date of the assignment.  Typical penalty is 10% off for each day an assignment is late. Absolutely no assignments will be accepted beyond the date of the final exam.
Academic Integrity Please be cognizant of the difference between individual and group projects, and use good judgment in following the University's policy on Academic Integrity. Severe academic penalities will be imposed for violations of this policy, such as receiving at a minimum 0% credit for an assignment, or at the maximum a failing grade for the course, at the discretion of the instructor.
Accommodations Additional support is available to students who need it through the Villanova Office of Disabilities and Learning Support Services. It is always recommended to seek out extra assistance and advice early rather than waiting, and friendly and qualified help is there for you.

Last updated: 01/17/2017