The following table shows the planned schedule for the classes. The table specifies the class date, the topics planned, and the material you are expected to have read before the class begins. Where possible, I have included links to on-line readings that are outside of the text. You should also check the Documents section of the course SourceForge project for the readings as well. The main text, Concepts in Programming Languages, is abbreviated as CPL in the readings. The supplementary text, Elements of ML Programming, is abbreviated as EMLP. If you have not acquired the supplementary text, you should read the specified material in the ML Tutorial, (MLT) that I have placed in the SourceForge project.
The topics listed here are what is planned. I reserve the right to make modifications as the course proceeds. I will adjust the table as I make changes.
| Class # | Date | Topics | Readings |
|---|---|---|---|
| 1 | 17-Jan | Course overview, introduction to programming languages, our approach, ML example. | CPL, chapters 1 and 2 EMLP, chapter 1 MLT, Sec, 1, 2.1-2.3 |
| 2 | 24-Jan | Functional programming, LISP. More ML | CPL, chapter 3. EMLP, chapter 2 MLT, Sec. 2.4-2.5 McCarthy paper |
| 3 | 7-Feb | More LISP. Parsing, compilation, grammars. | CPL, Sec. 4.1-4.2 EMLP, Sec. 3.1-3.3 |
| 4 | 14-Feb | Language Specification. Semantics, denotational semantics, functional vs. imperative languages. | CPL, Sec. 4.3-4.5 EMLP, Sec. 3.4, 4.1 MLT, Sec. 2.6, 4 Backus paper in the Readings folder on SourceForge Read the exotic programming tools article. |
| 5 | 21-Feb | Algol and ML. A brief look at two-level grammars. | CPL Chapter 5 EMLP, Chapter 5 MLT, Sec. 2.7-8. Read the Lambda Calculus Tutorial |
| 6 | 28-Feb | Type systems | CPL Chapter 6 Sections 1 and 2 of the ALGOL 68 tutorial in the SourceForge project |
| 7 | 7-Mar | Midterm exam | |
| 8 | 14-Mar | Review of the midterm. Type systems, Attribute grammars (with respect to types). | |
| 9 | 21-Mar | Storage Management, Scope and Control, abstraction in ML | CPL, Chapter 7 |
| 10 | 28-Mar | Functors, modularity, control, abstraction | CPL Chapter 8 The Structure of Systems Usning Upcalls, in the Readings folder on SourceForge |
| 11 | 4-Apr | Program slicing and applications | Read the Program Slicing paper in the SourceForge project. Slides for this lecture are here, here, and here. |
| 12 | 11-Apr | Object-oriented concepts in languages. Aspect-oriented programming. | CPL Chapter 9 & 10. AspectJ Programming Guide. Aspect-oriented Programming: What is it good for? |
| 13 | 18-Apr | Dynamic languages. Domain-specific languages. Mini-project pesentations. | |
| 14 | 25-Apr | Mini-project presentations. Final exam |