CS 380 : Compilers

Course Description

CS380 Compilers: The student will learn the principles of compiler construction. In particular, the student will learn about lexical analysis, symbol tables, parsing, type checking, and code optimization. Some or all of these concepts will be put into practice with programming projects. Prerequisite: CS352. 3:0:3

Learning Outcomes

  1. State the basics of compiling, including assembly language concepts, interpreters, compilers, and debuggers.
  2. Demonstrate the concepts of scanning, including lexical analysis, token generation, symbol table, operators, and reserved words.
  3. Demonstrate the different techniques of parsing, including the CONO table, LLR, LRR, and recursive descent parsing.
  4. Describe how executable code is generated by a compiler.
  5. Explain the different techniques of how executable code is optimized.

Teaching Direcitves:

Homework assignments: Assign weekly written homework assignments covering part of a class topic. Short topics will require only one assignment; longer topics could have more. These assignments can be neatly collected in a portfolio for easy reference. These assignments may be word processed or hand written, depending on the complexity.

Class Presentations: Since this is a high-level class, having students present ideas to the class is an excellent method of assessing knowledge, while at the same time giving them practice in preparing and giving instructions.

Exams: Give two to five exams during the semester covering the topics discussed in class. Exam questions should be of a similar nature to the assignment questions, but not exactly the same. Students should be able to apply the technique learned to a problem not covered in class. Open-note or cheatsheet exams can be appropriate given the complexity and detail of the exam.

Quizzes: Quick, 10-minute weekly exams are effective in keeping students up with the material. They give immediate feedback to how well they are learning the material.

Programming: It should be noted that creating a working compiler for even the most simple language is a very difficult task. While obtainable for the best of students, in can prove much too difficult of a challenge for many students.

Textbooks

View the approved textbook list.

^ Back to the Top

---------------------------------

University Resources


This page was last modified on Monday, September 12, 2011