CS 3723 Programming Languages, MW 3:30-4:45 pm


Lectures, Exams, and Assignments, Spring 2000

Late Penalties: Assignments are due at the start of class on the due date, always a Wednesday. There will be a 10% penalty for late programs turned in before the weekend, and a 25% penalty for programs turned in on Monday, after the weekend. Programs will not be accepted after the Monday following the Wednesday deadline. (Thus programs must be turned in no later than the following class period.) (See Grading Policy.)

No Team Programming: The course project has 6 parts, aiming to produce a single final program. In case you have trouble with one part, you should hand in your best effort for partial credit. Then for later parts you may use someone else's earlier program for the previous parts, with no penalty (but the borrowed code must be identified, as mentioned above).


Lectures, Exams, and Assignments, Spring 2000

Week Dates Topic Assignment / Exam Due date Text
1 Jan 19
(Jan 17: MLK day)
Intro, course organization.
Programming language(PL) overview.
Syntax versus semantics.
Run-time versus compile-time.
     
2 Jan 24, 26 Compiler overview.
Translation versus interpretation.
0. Quadruple Interpreter/
Translator
Feb 2 1, 2.1
3 Jan 31, Feb 2 The lexical level of a language.
Lexical analysis (scanning or tokenizing).
Finite-state machines (FSM, automata).
FSM Homework Feb 9 3.1
4 Feb 7, 9 FSMs and lexical analysis, con't.
Hand-made versus automated scanners.
I. Initial Scanner Feb 21 2.6, 3.2,
3.3, 3.6
5 Feb 14, 16 Formal description of PLs.
Grammars (context-free grammars).
    2.2
4.1, 4.2
6 Feb 21, 23 Grammars con't.  Flow diagrams.
Parsing and ambiguity.
Grammar Homework
First Exam
Mar 1
Feb 23
4.3
7 Feb 28, Mar 1 Specifics on parsing.
Top-down (recursive descent) parsing.
II. Initial Parser Mar 22 2.4, 4.4
8 Mar 6, 8 Intro to syntax-directed translation.
Translating arithmetic expressions (AEs).
III. Translate AEs to
      Quadruples
Mar 29 2.3
5.1, 5.2
Spring Break, Mar 13-17
9 Mar 20, 22 Symbol tables in PL translation.
Semantics in compliers
Semantics Homework Apr 3 2.7, 7.6
10 Mar 27, 29 Translation of flow-of-control.
Goto, if-then, while.
IV. Translate Control
       Structures
Apr 19 8.4, 8.6
11 Apr 3, 5 Activation records for functions.
Other storage management.
Activ. Record Homework
Apr 26
7.2, 7.3
12 Apr 10, 12 Translation of functions.
Parameters and local storage.
V. Translate Functions
     and Parameters ????
[????] 8.7
13 Apr 17, 19 Work on final details of project. VI. Final project:
       Target MIPS ????
[????]  
14 Apr 24, 26
(Apr 28: B of F)
Other issues: bottom-up parsers.
Compiler tools.
    4.5
15 May 1, 3
(May 4, 5: Study)
Leeway.      
May 12 Final Exam

Details about Exams:

Exams appear in green in the table above.

Details about Assignments:

The main work for the semester is a continuing project, working on a small compiler for a simple (very small) subset of C/C++ (and almost Java).  Assignments related to this project are given above in red boldface. Other written assignments appear in blue.


Textbook:  Compilers: Principles, Techniques, and Tools
By Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman, Addison-Wesley, 1986.
 


Revision Date: 12/23/99