CS 66-648 Compiler Design:
Syllabus Spring 1998
Instructor: M. S. Krishnamoorthy (moorthy)
Prerequisites:
CS 66-431 Systems Programming You must be familiar with a high level block-structured language. If you are not proficient in C or C++ then you must be prepared to learn it quickly. You should understand general programming concepts (recursion, parameter passing). You should have experience using data structures such as pointers, linked lists, trees, hash tables, and stacks.Text:
- Compilers: Principles, Techniques and Tools, Aho, Sethi, and Ullman, Addison-Wesley, 1986.
- A Retargetable C Compiler: Design and Implementation Fraser and Hansen, Benjamin-Cummings, 1995.
- Advanced Compiler Design and Implementation, Muchnick, Morgan and Kaufmann, 1998.
- Crafting a Compiler, Fischer and LeBlanc, Benjamin-Cummings, 1988.
- Introduction to Compiler Construction with UNIX, Schreiner and Friedman, Prentice-Hall, 1985. (on reserve)
- Compiler Design in C, Holub, Prentice-Hall, 1990.
- Recent Research Papers.
Grading:
Projects (3) 75%Test(1) 25%
If you cannot do the projects, because of accessability to a computer with utilities, such as lex, yacc, then there will be around 5 homeworks. 90-100 is an A, 80-89 is a B, 70-79 is a C, 60-69 is a D, <>
Topics:
- The Structure of a Compiler ( 1 lecture)
- Lexical Analyzer, LEX, Design of Lex ( 3 lectures)
- Top down Parsing, LL(1) Parsers ( 3 lectures)
- Bootom up Parsing, YACC, LR parsers ( 3 lectures)
- Syntax Directed Translation ( 2 lectures)
- Types and Type Checking ( 2 lectures)
- Run-Time Storage Administration and Symbol Table Management ( 2 lectures)
- Intermediate Code and Code Generation ( 4 lectures)
- Data-Flow Analysis ( 3 lectures)
- Code Optimizations ( 2 lectures)
- Architcure and recent development on compilers ( 2 lectures)
You will do the projects on either the unix worlstations or on PC's it is your responsibility to ensure that your program works correctly on it. All programming is done in C or C++. A number of tools will be used, i.e. Lex, Yacc, Make.
Late Assignments:
Unless you make prior arrangements with the instructor or have a medical excuse:
- Programming projects are submitted electronically and are due at midnight (23:59:59) on the due date. If you have your Makefile set up correctly, this will simply consist of the command make submit.
- Programs may be submitted late for a penalty of 10% per day for up to 4 school days.
On written homework assignments, you may discuss problems with other students, but the writeup must be your own. Merely copying answers is not permitted.
On programming projects, you may discuss problems and help one another find program bugs. You are not to write code together. All programming code must be your own.
The penalty for cheating on homework, programming projects, quizzes, and exams will be failure for the class.
Save all graded homework until the end of the semester just in case something is lost or recorded incorrectly.
Projects 3 and 4 are out. project34
Project 2 is out. project2
Test tables Example1 and Example2 latex tables.
Project 1 is out. project1
Java Programming Language Reference Manual
Example Directory Some programs contain some lex programs for testing leap years and converting latex enumerated lists.
Contains another Java compiler (for a subset of Java) - Written in C++ by Gor and Jonathan .
Java compiler for a subset of java is here. This was written in 1996 by Hongshi Guo as a part of a class project.
powerpoint viewer from microsoft to enable viewing slides across versions.
Lectures
lecture1.ppt 13-Jan-1998 09:52 43K
lecture2.ppt 13-Jan-1998 09:52 47K
lecture3.ppt 21-Jan-1998 09:10 48K
lecture4.ppt 26-Jan-1998 08:09 51K
lecture5.ppt 26-Jan-1998 08:09 67K
lecture5supp.ppt 26-Jan-1998 08:09 50K
lecture6.ppt 02-Feb-1998 09:00 67K
lecture7.ppt 02-Feb-1998 09:01 71K
lecture8.ppt 09-Feb-1998 08:57 57K
lecture9.ppt 18-Feb-1998 09:30 60K
lecture11.ppt 25-Feb-1998 09:25 48K
lecture12.ppt 25-Feb-1998 09:26 61K
lecture13.ppt 23-Mar-1998 08:45 61K
lecture14.ppt 23-Mar-1998 08:45 62K
lecture15.ppt 23-Mar-1998 08:45 62K
lecture16.ppt 23-Mar-1998 08:45 59K
lecture17.ppt 30-Mar-1998 10:19 69K
Lectures In PS
lec1.ps 13-Jan-1998 09:52 127K
lec2.ps 13-Jan-1998 09:52 174K
lec3.ps 21-Jan-1998 09:10 154K
lec4.ps 26-Jan-1998 08:08 147K
lec5.ps 26-Jan-1998 08:08 161K
lec5supp.ps 26-Jan-1998 08:08 92K
lec6.ps 02-Feb-1998 09:01 174K
lec7.ps 02-Feb-1998 09:00 195K
lec8.ps 09-Feb-1998 08:54 170K
lec9.prn 18-Feb-1998 09:30 133K
lec11.ps 25-Feb-1998 09:25 123K
lec12.ps 25-Feb-1998 09:25 160K
lec13.ps 23-Mar-1998 08:46 176K
lec14.ps 23-Mar-1998 08:47 182K
lec15.ps 23-Mar-1998 08:47 216K
lec16.ps 23-Mar-1998 08:47 136K
lec17.ps 30-Mar-1998 10:19 171K
lec19.ps 10-Apr-1998 12:00 153K
lec20.ps 10-Apr-1998 12:01 168K
No comments:
Post a Comment