Lecture Notes For All: Compiler Design5

GoDaddy

...................

Thursday, February 25, 2010

Compiler Design5

Compiler Design

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:

  1. Compilers: Principles, Techniques and Tools, Aho, Sethi, and Ullman, Addison-Wesley, 1986.
Extra references:
  1. A Retargetable C Compiler: Design and Implementation Fraser and Hansen, Benjamin-Cummings, 1995.
  2. Advanced Compiler Design and Implementation, Muchnick, Morgan and Kaufmann, 1998.
  3. Crafting a Compiler, Fischer and LeBlanc, Benjamin-Cummings, 1988.
  4. Introduction to Compiler Construction with UNIX, Schreiner and Friedman, Prentice-Hall, 1985. (on reserve)
  5. Compiler Design in C, Holub, Prentice-Hall, 1990.
  6. 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:
  1. The Structure of a Compiler ( 1 lecture)
  2. Lexical Analyzer, LEX, Design of Lex ( 3 lectures)
  3. Top down Parsing, LL(1) Parsers ( 3 lectures)
  4. Bootom up Parsing, YACC, LR parsers ( 3 lectures)
  5. Syntax Directed Translation ( 2 lectures)
  6. Types and Type Checking ( 2 lectures)
  7. Run-Time Storage Administration and Symbol Table Management ( 2 lectures)
  8. Intermediate Code and Code Generation ( 4 lectures)
  9. Data-Flow Analysis ( 3 lectures)
  10. Code Optimizations ( 2 lectures)
  11. Architcure and recent development on compilers ( 2 lectures)
Compiler Project:

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:

  1. 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.
  2. Programs may be submitted late for a penalty of 10% per day for up to 4 school days.
Dishonesty Policy:

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