198:314 Principles of Programming Languages
Fall 2002

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.

A list of programming project and exam dates is provided at the bottom of this page; the placement of the assignment deadelines in the syllabus is approximate.

Lecture 1: Introduction
History of programming languages, compilation.
L Chs 1-2

Lectures 2-4: 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-7: Basic Semantics
Names, locations, symbol table, memory management, lifetimes, garbage collection
L Ch 5

Friday, September 27, 2002 at midnight (Friday night) : C assignment posted

Lectures 8-10: 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

Friday, October 11, 2002 at midnight (Friday night): C assignment due; Java assignment posted

Lectures 11-13: Object-oriented Programming Languages
OO design, Java abstract classes and interfaces, inheritance
L Ch 10 (10.1-10.5, 10.7-10.8)

MIDTERM, Tuesday, October 22, 2002

Lectures 14-16: 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

Friday, October 25, 2002 at midnight (Friday night): Java assignment due; Scheme assignment posted

Lectures 17-18: Types
primitive types, type constructors, type checking, type equivalence, conversion, polymorphism, unions
L Ch 6

Lectures 19-21: Procedures and Environments
activation records, parameter passing semantics, scoping (lexical and dynamic), runtime stack
L Ch 8.1-8.5

Friday, November 15, 2002 at midnight (Friday night): Scheme assignment due; Prolog assignment posted

Lectures 22-24: Logic Programming
Prolog, goal-oriented semantics, database computations, unification, negation by failure, execution model, generate-and-test paradigm.
L Ch 12.1-12.5

Lectures 25-27: Event-driven Programming
Programming model, Java listeners, GUI programming, Swing example


Friday, December 5, 2002 at midnight (Friday night): Prolog assignment due.

Important Dates

  • Friday, September 27, 2002: C assignment posted
  • Friday, October 11, 2002: C assignment due at midnight; Java assignment posted
  • Tuesday, October 22, 2002: MIDTERM EXAM
    Day classes will skip one lecture in compensation.
  • Friday, October 25, 2002: Java assignment due at midnight. Scheme assignment posted.
    Note the need to start this assignment EARLY to avoid time conflict with the midterm exam
  • Friday, November 15, 2002 Scheme assignment due. Prolog assignment posted.
  • Friday, December 6, 2002: Prolog assignment due.
  • FINAL EXAM, Thursday, December 19, 2002, 4:00-7:00pm


Last updated by Barbara Ryder at 1:00pm on August 22, 2002.