198:314 Principles of Programming Languages
Fall 2007 -- Ryder's Lecture
Syllabus

Topics Approximately by Lecture
Relevant required readings in our Scott textboook are indicated
below next to course topics.
Note: additional
readings and/or relevant websites may be listed on the lecture notes
page.
All assignment dates listed in this syllabus are TENTATIVE, dependent on the
progress of the course and subject to change. The dates of the exams, however,
are fixed; you should begin NOW to make arrangments to be available for these
exam dates.
-
Lecture 1(week of 9/3/07): Introduction
- History of programming languages, what is interpretation? what is
compilation?.
Scott Ch 1; extra readings: ACM Digital Library,
History of Programming Languages conferences
-
Lectures 2-4(wk 9/10-9/17): Formal Languages
-
Regular expressions, Grammars, Backus-Naur form,
Context-free grammars, derivation, parse, parse trees, ambiguity
Scott Ch 2.1, 2.2, 2.2.1, 2.3, 2.3.1, 2.4-2.5 (plus some material on
FSAs and REs on the textbook CD);
-
Lectures 5-8(wk 9/24-10/1): Logic Programming
-
Prolog, goal-oriented semantics, database computations, unification,
negation by failure, execution model, generate-and-test paradigm.
Scott Ch 11
Tuesday, Septmber 25, 2007, Prolog project posted
-
Lectures 9-12(wk 10/8-10/15): Basic Semantics
-
Names, locations, symbol table, memory management,
lifetimes, scoping (lexical and dynamic), activation records, runtime
stack, memory management, garbage collection
Scott Ch 3.1-3.3, 3.5-3.8, 8.1-8.2
Tuesday, October 16, 2007 Prolog project due at midnight
MIDTERM Tuesday, October 23,
2007.
-
Lectures 13-15(wk 10/22-10/31):Functional Programming Languages
-
function abstraction, function application, into to lambda calculus,
Scheme, referential transparency, higher order functions, lambda calculus
Scott Ch 6.6, 10.1-10.5, 10.6.1
Tuesday, October 30, 2007, Scheme project posted
-
Lectures 16-17(wk 11/5): Parameter Passing
-
parameter passing semantics, implementations
Scott Ch 8.3
-
Lectures 18-20(wk 11/12-11/26) Scripting Languages - Python
-
uses of scripting, dynamic binding, multiparadigm languages
Scott Ch 13
Tuesday, November 20, 2007, Scheme project due at midnight;
Python project posted
-
Lectures 21-23(wk 11/15-12/3) Types
-
primitive types, type constructors, type checking, type equivalence,
conversion, polymorphism, unions, generics in C++
Scott Ch 7.1-7.8, 7.10
-
Lectures 24-25(wk 12/10): Parallel Programming, Monitors,
Threads
Tuesday, December 11, 2007, Python project due at midnight
-
Scott, Ch 12
-
Wednesday, December 19, 2007, 8am-11am, FINAL EXAM
Important Dates
-
Tuesday, Septmber 25, 2007, Prolog project posted
-
Tuesday, October 16, 2007 Prolog project due at midnight
-
Tuesday, October 23, 2007: in class MIDTERM EXAM
-
Friday, November 2, Scheme project posted
-
Tuesday, November 20, 2007, Scheme project due at midnight;
Python project posted
-
Tuesday, December 11, 2007, Python project due at midnight
-
Wednesday, December 19, 2007, 8am-11am, FINAL EXAM
Last updated at 5:00pm on November 2, 2007 by BGR