Advanced Topics in Programming Language Semantics

Intro to Type Systems

Theta (version 1.0)

Theta (version 2.0)

Theta (version 3.0, preliminary)

Theta 3.0 Hints

Review of Object Oriented Semantics

Fundamental Concepts (chapter 2)

Object State vs. Object Identity, Persistence, Cloning

SOOL: A Simple Object Oriented Language

Type Problems in Object-Oriented Languages (chapter 3)

Subtypes and Subclasses

Overloading vs. Overriding

Generics in Java 5 (chapter 4)

Understanding Sybtypes (chapter 5)

Invariant, Covariant, Contravariant

Subtyping

Type Restrictions on Subclasses (chapter 6)

Varieties of Object-Oriented languages (chapter 7)

Object-Based Languages (chapter 4 of Abadi & Cardelli)

Java Script

More Examples

http://www.webreference.com/js/column79/

http://mckoss.com/jscript/object.htm

http://www.javascriptkit.com/javatutors/oopjs.shtml

 

A Formal Description of SOOL (chapter 10)

Type Theory for Theta

PSOOL (Polymorphic SOOL) (chapter 15.1)

MyType (chapter 16.1)

Dropping Subtyping for Matching (chapter 18)

Other Languages

Haskell

Scheme

Java

C#

C++

Smalltalk