Much progress was made by investigating the notion of subtyping within procedural languages and their theoretical models (lambda calculi). These studies clarified the role of subtyping in object-oriented languages, but still relied on complex encodings to model object-oriented features. Recently, in joint work with Martin Abadi, I have studied more direct models of object-oriented features: object calculi.
Object calculi embody, in a minimal setting, the object-oriented model of computation, as opposed to the imperative, functional, and process models. Object calculi are based exclusively on objects and methods, not on functions or data structures. They help in classifying and explaining the features of object-oriented languages, and in designing new, more regular languages. They directly inspired my design of Obliq, an object-oriented language for network programming.