Theory and design of programming
languages. How languages support abstraction, modularity, concurrency
through functional programming, object-oriented programming, and
other mechanisms. Operational semantics of programming languages;
type systems, polymorphism, and subtyping.
General Information
Lectures: Mon, Weds, Fri 11:00 - 11:50 in room 302
Professor: Andrew W. Appel,
appel@cs
Office Hours: 409 Computer Science Building, Monday & Wednesday 1:30 - 2:30
There will be weekly problem sets. Each problem set will have some
pencil-and-paper exercises and some small programming assignments.
Programs will be written in ML and Java, and occasionally C.
Software
Both ML and Java are available on the CS department's Unix machines
(shades, penguins)
and on Microsoft Windows. In general, you
may do the programming assignments on either Unix or Windows.
If you do not have an account on the CS Unix machines, you may obtain
one from Jim Roberts, room 208 CS Bldg.