To provide a solid foundation for studying advanced topics in Programming Language Specification and Design.
This course introduces concepts related to the specification and design of high-level programming languages. It discusses different programming paradigms, algebraic specification and implementation of data types, and develops interpreters for specifying operationally the various programming language features/constructs. It also introduces attribute grammar formalism and axiomatic semantics briefly. The programming assignments will be coded in Scheme.
The course load includes homeworks and programming assignments worth 30 points, a midterm exam worth 30 points, and a final exam worth 40 points.
The letter grades will be assigned using the following scale: A[90-100], B[80-90), C[70-80), D[60-70), and F[0-60). However, I reserve the right to adjust the scale somewhat to utilize the gaps in the distribution.
| Topics with links to Lecture Notes | Addl. Readings (EOPL-2nd ed) | |
|---|---|---|
| Class 1 | Evolution of Programming Languages | |
| Class 2 | Scheme Metalanguage | Chap 1.1, 1.2 |
| Class 3 | Abstract Data Types: Algebraic Specs | Chap 2 |
| Class 4 | (continue) | |
| Class 5 | Programming Paradigms | |
| Class 6 | Abstract Syntax and its Representation | Chap 2 |
| Class 7 | Interpreter for a Simple Expression Language | Chap 3 |
| Class 8 | User-Defined Functions; Scoping | Chap 1.3, 3 |
| Class 9 | Midterm Exam (April 28) | |
| Class 10 | Implementing Recursion | Chap 3 |
| Class 11 | Closures and Streams | |
| Class 12 | Imperative Programming : Assignment | Chap 3 |
| Class 13 | (continue) | |
| Class 14 | Interpreter for an Object-Oriented Language | Chap 5 |
| Class 15 | (oopl.ps) | |
| Class 16 | Introduction to Attribute Grammars | |
| Class 17 | (continue) | |
| Class 18 | Introduction to Axiomatic Semantics | |
| Class 19 | (continue) | |
| Class 20 | Wrap-up | |
| Final Exam (June 7, 5:45pm-7:45pm) |