Course overview. Review of logic and set theory. Review of induction. Study of a little language of arithmetic expressions. The language IMP and its operational semantics. The denotational semantics of IMP. Program verification, and the axiomatic semantics of IMP. Procedures and bindings. Introduction to the lambda calculus and functional programming. Type systems. Introduction to objects. Class-based languages. Object-based features. Java overview. Java internals. Brief Modula-3 overview. Advanced subtyping. Sather overview. Introduction to object calculi. An untyped object calculus. Objects and imperative features. A first-order type system for objects. The language O-1. CLU and data abstraction. Polymorphism. Parallel computing. Communication and concurrency. Distributed mobile computation in Obliq. Extended static checking. Project presentations.
Some of the lectures were given by guests: Matthias Anlauff, Luca Cardelli, Greg Nelson, Kathy Yelick, Frank Yellin.
The transparencies and exercises for CS263 are no longer available at this site. Please contact Martín Abadi if you would like additional details.