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:
- Students will acquire substantial programming experience, in C
- Practical application of multiple data structures and algorithms
- 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.