CS 432F: Compiler Design Principles
CS 728: Compiler Design
This page gives information about the courses
``CS 432F: Compiler Design Principles'' and
``CS 728: Compiler Design''
taught by the Department
of Computer Science and Engineering at the Indian
Institute of Technology Delhi.
General information about the courses are available under the following
headings:
Overview |
Objectives
|
Course Description |
Prerequisites
The course is being taught in the Spring Semester of year 2002 by
Sanjiva
Prasad. Information about this course offering is available under the
following headings:
Staff |
Textbooks
|
|
Computing Resources
|
Administrative Information and Grading Policy
Also available are the following (at least from within IITD):
HOT NEWS
Check your PMT
Read comments about assignment
1
Read comments about assignment
2
Read comments about assignment
4
Overview
CS 432F: Compiler Design Principles
is an introductory course on concepts and principles in compiler
design and implementation.
CS 728: Compiler Design
is a graduate level version of the course with similar orientation
intended for graduate students who have not taken an undergraduate
Compilers course similar to CS 432F.
Objectives
The main objectives of these courses are to give students hands-on
experience with crafting a simple compiler, working on a sizeable
software engineering project, using modern software tools, and
most importantly correlating theory with practice.
Course Description
The Courses of Study booklet has this to say:
CS 432F: Compiler Design Principles
5 Credits: 3-0-4 (3 Lectures a week, no tutorial, four practical hours)
Contents.
Compilers and translators; lexical and syntactic analysis, top-down
and bottom up parsing techniques, internal form of source programs;
semantic analysis, symbol tables, error detection and recovery, code
generation and optimization. Type checking and static
analysis. Algorithms and implementation techniques for type-checking,
code-generation and optimization. Students will implement static
analysis type checking, and optimization.
CS 728: Compiler Design
4 Credits: 3-0-2 (3 Lectures a week, no tutorial, two practical hours)
Contents. Language processors: compilers, interpreters, Front end tools,
processing syntax, abstract syntax and intermediate code; semantic
analysis, symbol tables, error detection and recovery; abstract
machine and code generation; type systems and static analysis; data
flow analysis, optimizations; practical exercises to build language
processors.
Prerequisites
For CS 432 F the prerequisite is: CS 232 F: Programming Languages.
For CS 728: A Programming Languages course similar to CS 232 F.
Other desired background: knowledge of automata theory, context free
languages, computer architecture, data structures and simple graph
algorithms, logic or algebra.
Staff
Instructor:
Dr Sanjiva Prasad
Teaching Assistants:
Textbooks
-
modern compiler implementation in ML by A. W. Appel.
Cambridge University Press, 1997. (You are advised to buy and use the
Java version of the book, which is cheaper and more easily available).
-
Compilers: Principles, Techniques and Tools by A. V. Aho,
R. Sethi,
J. D. Ullman. Addison-Wesley, 1986.
Language-specific reference material (may not be affordable/available in
a shop):
-
ML for the Working Programmer by L.C. Paulson, Cambridge University
Press.
-
Online SML Tutorial
by Bob Harper at CMU.
-
SML-Resources(for locals only)
- Tutorial on Standard ML(ps.gz)
- Emacs SML mode(tar.gz)
- SML Basis Documentation
- SML compilation Manager(ps.gz)
- ML-lex and ML-yacc (ps.gz)
Syllabus
- Lecture 1: Introduction. What is a compiler? Why is the course
hard?
- Lecture 2: Overview of SML: Polymorphism and modules
- Lecture 3: Overview of SML's module system: functors, abstractions.
- Lecture 4: Lex technology. Grammars, Context-free grammars,
ambiguity, example of removing ambiguity.
- Lecture 5: Predictive Parsing (Recursive Descent): First and
Follow, Building a LL(1) Parsing Table, problem of
left recursion.
- Lecture 6: Eliminating left recursion, left factoring, error
recovery. LR grammars.
Computing Resources
Administrative Information
Schedule and Classrooms:
G slot in the time table.
Lectures in VI-301.
| Tue |
2:00-3:30 |
| Fri |
2:00-3:30 |
Tutorials None!!
.
Laboratory hours at your convenience
Make-up lectures, quiz hour (when announced)
Exam Schedule:
| Minor I |
2--5 February 2002 |
--to be ann-- |
--to be ann-- |
| Minor II |
14--16 March 2002 |
--to be ann-- |
--to be ann-- |
| Major |
|
|
|
Marks:
| Minor, Quizzes |
|
| Major |
|
| Assignments and Homework |
|
| Other Assessment |
|
Grading Policy:
Per Institute regulations, an ``A'' grade will be awarded only over
80% and no student with less than 30% will be given a passing grade.
An ``I'' grade can only be awarded only in the case of a serious illness
during the major exam. A make-up exam will be scheduled
at the earliest, and the ``I'' grade will be converted as soon as possible.
There will be no make-up tests for the minors.
Grades may be drastically lowered if the student fails to comply
with the attendance requirements, or is
dishonest.
Other policies:
-
Attendance: The institute attendance requirements
are quite clear. No student with less than 75% attendance can be awarded
a passing grade. Please read institute attendance requirements and comply.
Note that the minimum 75% requirement accounts for time lost due to illness.
-
Illness: In sickness or ill-health, the course
instructor must be intimated at the earliest, and a Medical Certificate
from the Institute Sick Bay, or from a doctor from an Institute-recognised
hospital covering the period of illness must be furnished at the earliest.
Only in the case of serious illnesses will I consider giving an
extension
on assignments or a make-up test.
-
Make-up Tests: Make-up tests (major exams only)
will be given only when the student furnishes valid documentation of
illness
for a period including the day of the exam.
-
Late policy: Normally, I will not consider any
assignments turned in late. In cases of illness I may
consider giving an extension, provided the student informs me as soon as
possible. an extension, provided the student informs me as soon as possible.
-
Dishonesty: Please read carefully the institute's
regulations on dishonesty. Any instance of blatant academic dishonesty
will result in my recommendation of the award of an 'F' grade.Minor transgressions
will result at least in the lowering of a letter grade.
Sanjiva Prasad
/ Dept. Computer Science and Engineering / IIT Delhi / Hauz Khas/ New Delhi
110016 / sanjiva@cse.iitd.ernet.in