Office Hours
Resources
Course Information
Exams
Midterm: Thursday, November 4
Final: Section S, Thursday, December 9 (2:00 - 4:30)
(FYI, to see all Final Exam Schedules for Fall 2004, click
here)
Course Notes (most likely few will be provided, unfortunately)
Homework Assignments
- Homework 1: Assigned and turned in.
- Homework 2: Exercises 2.1, 2.3, 2.6, 2.14, 2.17, 2.22
Due: Tuesday, October 5
- Homework 3: Exercises 3.5, 3.8, 3.9, 3.11, 3.12, 3.17, 3.21
Due: Thursday, October 28
- Homework 4: Exercises 4.3, 4.4, 4.5 (not the "extra" part),
4.9(a), 4.16, 4.18
Due: Thursday, November 11
- Homework 5: 6.1, 6.2, 6.3, 6.7, 6.14, 6.16
(15 points extra credit: 6.9)
Due: Thursday, December 2 (last day of class)
Project
The following links will prove useful for the project.
More details to be added soon.
- Bison:
Parser Generator similar to YACC.
- Flex:
Fast Lexical Analyser Generator
- Examples:
Sample programs including a basic ReversePolishCalculator (kept pretty minimal to illustrate
integrating flex and bison, includes simple Makefile as well.
Scoring of the project is as follows:
- 50 points: Description of the language (including sample programs).
Language must be powerful enough to support at least two types,
conditional expressions, variables, basic arithmetic operations (and/or
string operations), input/output (via predefined functions for example).
When in doubt, let me know the language description.
- 20 points: Parser/Scanner recognize lexical and syntactical errors
in the grammar.
- 20 points: Able to run programs (via interpreter)
- 5 points: Supports arrays of any size.
- 5 points: Proper type checking
- 10 points: GOTO supported
- 10 points: LOOPS supported (e.g. FOR, WHILE, REPEAT) with
multiple statements in the loop (e.g. BEGIN END block)
- 2 points: Good error messages
- 20 points: FUNCTION calls (including recursion)
- Max: 120 points
Useful Material
I will categorize these once the list gets long enough!
For now they are here just as a reference.
- Bison:
Parser Generator similar to YACC.
- Flex:
Fast Lexical Analyser Generator
- Haskell: Functional