A lambda calculus of objects and method specialization

Kathleen Fisher, Furio Honsell, John C. Mitchell · 1994

This paper presents an untyped lambda calculus, extended with object primitives that reflect the capabilities of so-called delegation-based object-oriented languages. A type inference system allows static detection of errors, such as message not understood, while at the same time allowing the type of an inherited method to be specialized to the type of the inheriting object. Type soundness is proved using operational semantics and examples illustrating the expressiveness of the pure calculus are presented. 1 Introduction There are several forms of object-oriented languages. One of the major lines of difference is between class-based and delegation-based languages. In class-based languages such as Smalltalk [GR83] and C ++ [ES90], each object is created by a class and inheritance is determined by the class. In delegation-based languages such as Self [US87, CU89], an object may be created from another object, inheriting properties from the original. In this paper, we use an untyped la...

Read the paper · More papers on PaperTik