198:314 Principles of Programming Languages
Spring 2004

Syllabus



Topics Approximately by Lecture

Required reading in our Louden textboook (indicated by L) are indicated below. Also listed are supplemental readings in Aho, Sethi, Ullman, Compilers: Principles, Practices and Techniques, Addison-Wesley, 1986 (indicated by ASU) which can be found in the SERC Reading Room on reserve.

All assignment dates listed in this syllabus are TENTATIVE, dependent on the progress of the course and subject to change. The times of the exams are fixed.

Lecture 1(week of 1/19): Introduction
History of programming languages, compilation.
L Chs 1-2

Lectures 2-4(wk 1/19-1/25): Formal Languages
Regular expressions, Grammars Context-free grammars, derivation, parse, parse trees, ambiguity
L Ch 4 (4.1-4.5,4.7); ASU Ch 2.2, 3.3, 3.4

Lectures 5-8(wk 2/2-2/9): Functional Programming Languages
function abstraction, function application, into to lambda calculus, Scheme, referential transparency, higher order functions
L Ch 11.1-11.3,11.5,11.8

Monday, February 9, 2004: Scheme project posted

Lectures 9-10(wk 2/16): Basic Semantics
Names, locations, symbol table, memory management, lifetimes, scoping (lexical and dynamic), activation records, runtime stack
L Ch 5.1-5.5, 8.4
Lectures 11-13(wk 2/23-3/1): C
C syntax (as compared to Java), control structures and datatypes in C, coding with pointers, building recursive data structures with pointers, function pointers
L Ch 7 (7.1-7.4), 8.5

Monday, March 1, 2004: Scheme project due

Thursday, March 11, 2004: C project posted

Friday, March 5, 2004: MIDTERM EXAM

Lectures 14(wk 3/8): More on Memory Management
memory management, garbage collection
L Ch 5.6-5.7, 9

Lectures 15-18(wk 3/8,3/22,3/29): ADT's, Object-oriented Programming Languages
OO design, C++ abstract classes and interfaces, multiple inheritance
L Ch 10 (10.1-10.5, 10.7-10.8)

BGR fix
Lectures 19(wk 3/29): Parameter Passing
parameter passing semantics
, L Ch 8.1-8.5

Mon, April 5, 2004: C project due; Thurs, April 8, 2004: C++ design project posted

Lectures 20-22(wk 4/5-4/12): Logic Programming
Prolog, goal-oriented semantics, database computations, unification, negation by failure, execution model, generate-and-test paradigm.
L Ch 12.1-12.5

Monday, April 19, 2004: C++ design project due; Prolog project posted

Lectures 23-25(wk 4/12-4/19): Types
primitive types, type constructors, type checking, type equivalence, conversion, polymorphism, unions
L Ch 6

Lectures 26-27(wk 4/26): Parallel Programming, Monitors, Threads
L Ch 14

Monday, May 3, 2004: Prolog project due

Important Dates

  • Monday, February 9, 2004: Scheme project posted
  • Sunday, February 29, 2004: Scheme project due at midnight
  • Friday, March 5, 2004: MIDTERM EXAM
  • Monday, March 8, 2004: C project posted
  • Friday, March 31, 2004: C project due
  • Friday, March 31, 2004: C++ design project posted
  • Sunday, April 11, 2004: C++ design project due; Prolog project posted.
  • Monday, May 3, 2004: Prolog project due
  • Monday, May 10, 2004: FINAL EXAM, 4:00-7:00pm


Last updated by Barbara Ryder at 7:30am on April 8, 2004.