CS 441G-001

Professor Craig C. Douglas

Tuesday-Thursday 12:30-1:45 RMB 323

http://www.mgnet.org/~douglas/Classes/cs441g-f05
Syllabus    Survey    Mailing List    Notes    Language    Homework

  Please fill out the Survey if you have not done so already.

 

Homework

Reading Assignments

    There is one traditional textbook, which you are expected to read cover to cover and other suggested reading that is optional.

Abbreviation What Details
L Textbook Kenneth C. Louden
Compiler Construction: Principles and Practice
PWS Publishing Co., 1997.
ISBN 0534939724
LMB Suggested reading John R. Levine, Tony Mason, and Doug Brown
Lex & Yacc
O'Reilly & Associates, 1992.
ISBN 1565920007
D Online notes C. C. Douglas, class notes

A good idea is to first sit down for a set period of time (e.g., 60 minutes) and read the textbook like a comic book.  Do not really read anything, but look at every single page (in order):  skim a little, look a little.  Your mind will subconsciously remember things later when you have to read the books in detail.

    The table below lists what you are required to read by what date:

Read by Book What Comments
8/30/2005 L All Spend no more than 60 minutes on this.  Just skim it and see what is in the book (and where).
9/1/2005 L Chapter 1 Skim sections 1.6 - 1.8.  I may assign some exercises from the end of the chapter.
9/8/2005 L Chapter 2  

Homework Assignments

    Homework will typically be done individually when textbook assignments are given and by your group when I give a programming exercise.

Due Date How Link/Description Solution
9/6/2005 Individual L, Ch. 1, probs. 1.2, 1.3, and 1.10  
9/8/2005* CSLab, Group Simple lexer  

* Automatic extension through the weekend.  However, I will monitor your progress on the due date.

Resources of Interest

    Lex, flex, yacc, byacc, and bison can easily be found on Linux, FreeBSD, and Mac OS X systems.  Some of these tools can work with C++, not just C.  Tools like jlex and jyacc work with Java.  Searching on the web will find them for various operating systems (e.g., Cygwin for Windows.

Class Project

    During this semester, students will be paired off into groups.  Each group will will write a complete compiler for the class language in C or C++ (see the Language link at the top of any class web page).  If you do not know either of these languages, learn one right away or drop the class immediately.  This is going to be a heavy programming course.  Swapping codes with other groups is expressly forbidden unless authorized by me in advance.  If in doubt, contact me first.  Otherwise you might find yourself in deep, deep trouble legally.

    Due dates will be on this page in this section as the semester progresses.  You are under no obligation to turn your project in at the last minute.  If you can finish it in October, you might discover that you are done with the course.  WarningThe due dates are currently approximate.  Watch this page for the exact dates.

Due Date Percentage Link Solutions What is Due
9/30/2005 25     Lexer
10/31/2005 35     Parser
12/6/2005 40     Code Generator
Once a part is due and graded, I will post a solution.  You will have the option of using your own part(s) or the posted one(s).  I strongly urge you to evaluate the posted solutions and see if you can do better by modifying your own work.  If so, I might post yours instead.

    Note that the code generator takes a good bit of time to do.  It is much trickier than you think it is.  You had better get right on it once your parser is done or you will never finish it by the due date.  If you wait until December to start, you are really sunk.

    Warning: I do not plan on giving any Incompletes.

Groups

    The programming/project groups are as follows:

Group Name Members
441g1 Fitzpatrick, Sargent
441g2 Can, Ter-Isahakyan
441g3 Mattei, Turgay
441g4 Carey, Jones
441g5 Duncan
441g6 Bahramahi, Vogel
441g7 Hishmeh, Payne
441g8 Barker, Baumann
441g9 Burklow, Logsdon
441g10 Mbaki, Van Horn

See or contact me immediately if there is a problem with your group.

 

Cheers,
Craig C. Douglas

http://www.mgnet.org/~douglas

Last modified: