Theory and design of modern 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.
Prerequisites: 217
and 226
General Information
Lectures: Tues, Thurs at 9:00 - 10:20 in room 105 CS Building
Professor: Andrew W. Appel,
appel@cs
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
(ux01, ux02, ..., ux05) 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.