Announcements | Lectures | Written Assignments | Programming Assignments | Exams

CS 415 - Programming Languages - Lectures

Lectures and Syllabus

The following schedule is tentative.

Date # Topic Homework Due Reading For The Next Class
Thu Jan 18 01 Course Overview Chapters 10.1 - 10.3, 10.5 - 10.8
Joel Spolsky's The Perils of JavaSchools (optional)
Tue Jan 23 02 History of PL
Functional Programming
The Cool Reference Manual
J. W. Backus. Speedcoding. Journal of the ACM 1(1) pp. 4-6, 1954.
Thu Jan 25 03 Functional Programming
Overview of Cool
Chapters 2.1 - 2.2
Edsger Dijkstra. How do we tell truths that might hurt? EWD498, 1975. (optional)
Fri Jan 26 PA0 (Rosetta) Due P. J. Landin. The next 700 programming languages. Communications of the ACM 9(3) pp. 157-166, 1966. (very optional, about functional programming)
Sun Jan 28 Engineering Drop Deadline
Tue Jan 30 04 Lexical Analysis & Finite Automata (Part 1) Chapters 2.4 - 2.4.1 (13 CD - 15 CD) (1 page in book + 3 pages on CD)
Wed Jan 31 Arts & Sciences Drop Deadline
Thu Feb 01 05 More Finite Automata (Part 2) Chapters 2.3 - 2.3.2
Wikipedia's LL Parsing (optional)
Fri Feb 02 PA1 (Rosetta) Due
Tue Feb 06 06 Context-Free Grammars, Parsing, Derivations, Ambiguity
Thu Feb 08 07 Top-Down Parsing WA1 Due Chapter 2.3.3
Wikipedia's LR Parsing (optional)
Fri Feb 09 PA2 (Lexing) Due
Tue Feb 13 08 LR Parsing Chapters 2.3.4 - 2.3.5, 2.4.2 - 2.4.3 (16 CD - 18 CD) (3 pages on CD)
Thu Feb 15 09 More LR Parsing WA2 Due Chapters 3.1 - 3.6
Wikipedia's Scope (programming) (optional)
Tue Feb 20 10 Scoping & Types Chapters 4 - 4.1, 7 - 7.1
Luca Cardelli's Type Systems (optional but recommended)
Thu Feb 22 11 Type Checking & Static Semantics WA3 Due Chapter 7.2
Wikipedia's Type system (optional)

Anonymous Course Survey

Fri Feb 23 PA3 (Parsing) Due
Tue Feb 27 Midterm 1 (in class)
Thu Mar 01 12 More Static Semantics Chapters 8.1 - 8.3
Chapter 6 of Grant & Smith's Programming Languages (optional)
Sat Mar 03 Spring Recess Begins
Sun Mar 11 Spring Recess Ends
Tue Mar 13 13 Cool Type Checking, Runtime Organization Chapters 7.3, 9 - 9.3
Bjarne Stroustrup. What is "Object-Oriented Programming"?. 1991
Wikipedia's Object-oriented programming (optional)
Thu Mar 15 14 Object-Oriented Programming (PPT) Chapters 9.4 - 9.7
Wikipedia's Virtual method table (optional)
Wikipedia's Aspect-oriented programming (optional)
Fri Mar 16 WA4 (Semantics Checkpoint) Due (11:59pm)
Tue Mar 20 15 Aspect-Oriented Programming The Cool Reference Manual, Chapters 2 - 2.2.2 of Grant & Smith's Programming Languages
Chapters 2.3 - 2.4.4 of Grant & Smith's Programming Languages (optional)
Thu Mar 22 16 Cool Operational Semantics WA5 Due Wikipedia's Basic block and Data-flow analysis
Tue Mar 27 17 Basic Blocks, Local Optimizations
Thu Mar 29 18 Dataflow Analysis, Global Optimizations WA6 Due Chapter 7.7
David F. Bacon, Perry Cheng, V. T. Rajan. A unified theory of garbage collection. In OOPSLA, pp. 50-68, 2004. (optional)
Fri Mar 30 PA4 (Semantics) Due
Tue Apr 03 19 Automatic Memory Management Chapter 8.5
Thu Apr 05 20 Exceptions and Error Handling WA7 Due Susan L. Graham, Peter B. Kessler, Marshall K. McKusick. gprof: a call graph execution profiler. In Best of PLDI 1979-1999, pp. 49-57, 2004.
Tue Apr 10 21 Debuggers and Profilers
Thu Apr 12 Midterm 2 (in class) Chapter 14.6, 14.7 (195 CD - 199 CD) (one chapter in the book, one on the CD)
Tue Apr 17 22 Linking, Loading and Shared Libraries Wikipedia's Design patterns (optional)
Thu Apr 19 23 Design Patterns WA8 Due Aleph One. Smashing The Stack For fun And Profit. In Phrack 7(49):14, 1996.
Ken Thompson. Reflections on Trusting Trust. ACM Turing Award Speech. (optional)
Tue Apr 24 24 Language Security (how much parallel programming background do we have?)
Thu Apr 26 25 CCured
Sat Apr 28 PA5 (Interpreter) Due
Tue May 01 26 Concurrent Programming
Thu May 10 Final Exam (in class 1400-1700 MEC 214)

All readings are from Michael L. Scott's Programming Language Pragmatics (second edition) unless otherwise specified.

Generic Calendar

	 Jan			Feb		       Mar
 S  M Tu  W Th  F  S    S  M Tu  W Th  F  S    S  M Tu  W Th  F  S
    1  2  3  4  5  6                1  2  3                1  2  3
 7  8  9 10 11 12 13    4  5  6  7  8  9 10    4  5  6  7  8  9 10
14 15 16 17 18 19 20   11 12 13 14 15 16 17   11 12 13 14 15 16 17
21 22 23 24 25 26 27   18 19 20 21 22 23 24   18 19 20 21 22 23 24
28 29 30 31            25 26 27 28            25 26 27 28 29 30 31

	 Apr			May	     
 S  M Tu  W Th  F  S    S  M Tu  W Th  F  S  
 1  2  3  4  5  6  7          1  2  3  4  5  
 8  9 10 11 12 13 14    6  7  8  9 10 11 12  
15 16 17 18 19 20 21   13 14 15 16 17 18 19  
22 23 24 25 26 27 28   20 21 22 23 24 25 26  
29 30                  27 28 29 30 31