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.