CS 370: Compilers & Automata Theory

Professor: Clinton Jeffery
Office: SH 125
Phone: 505-646-3480
E-mail: jeffery@cs.nmsu.edu

TA: Ziad Al Sharif
Office: SH 149
Office Phone: 646-6152
E-mail: zsharif@cs.nmsu.edu
TA website: http://www.cs.nmsu.edu/~zsharif
Class Meets: TTh 1:10-2:25PM, SH 118b
Lab: Th 2:35-4:25, SH 118b
Dr. J's Office Hours: Tuesday 3-4, Friday 4-5 and by appointment
Web: http://www.cs.nmsu.edu/~jeffery/courses/370/
Prerequisites: C or better in CS 272, 273, and (CS 278 or Math 330)
Text: Compiler Construction, by Kenneth Louden

Course Description

This course presents methods in the design and implementation of compilers. It includes the construction of the components of an actual compiler as a term project. Some basic results from theory of computer science turn out to be important in making compilers much easier to write. The course will introduce finite automata, regular expressions, and context free grammars, along with software tools that use these formalisms to automatically produce two major components of a compiler.

Goals

When you finish this course, you should have an understanding of the major phases in program translation as they occur in conventional compilers.

Our goals in this course include:

  1. Students will acquire substantial programming experience, in C
  2. Practical application of multiple data structures and algorithms
  3. Understanding how CS theory can instrumentally improve practice.











Grading

The grading will be proportioned as follows. The four major phases of compilation are each graded by means of a major homework programming assignment. In addition, some labs have a deliverable that you must turn in for graded credit, and there may be quizzes or minor (non-programming) assignments that are a part of your grade. There is a midterm and a final exam.

15%lexical analysis
15%syntax analysis
15%semantic analysis
15%code generation
15%labs/quizzes/homeworks
10%midterm exam
15%final exam

Readings, Quizzes, Exams, and Homeworks

You are responsible for reading and understanding specific portions of the lecture notes as assigned in class. There will be a small number of unannounced quizzes which will in effect grade you on whether you do the required reading. There will be midterm and final exams drawn largely from assigned readings and material discussed in class.

Policy Statements

Cheating is strictly forbidden on both exams and assignments, with severe penalties. Discussion is OK, but do not share your code, or risk failing or being removed from the course. For a more detailed definition and examples, see http://lib.nmsu.edu/instruction/plagiarismforstudents.htm

Updates

Please check the course web page given above for updates at least once a week. Additional help and clarifications for assignments are the best reason to check the web page.