Results 1 -
2 of
2
Safe and decidable type checking in an object-oriented language
- In OOPSLA '93 Conference Proceedings
, 1993
"... Over the last several years, much interesting work has been done in modelling object-oriented programming languages in terms of extensions of the bounded second-order lambda calculus, F . Unfortunately, it has recently been shown by Pierce ([Pie92]) that type checking F is undecidable. Moreover, he ..."
Abstract
-
Cited by 33 (2 self)
- Add to MetaCart
Over the last several years, much interesting work has been done in modelling object-oriented programming languages in terms of extensions of the bounded second-order lambda calculus, F . Unfortunately, it has recently been shown by Pierce ([Pie92]) that type checking F is undecidable. Moreover, he showed that the undecidability arises in the seemingly simpler problem of determining whether one type is a subtype of another. In [Bru93a, Bru93b], the first author introduced a statically-typed, functional, object-oriented programming language, TOOPL, which supports classes, objects, methods, instance variables, subtypes, and inheritance. The semantics of TOOPL is based on F , so the question arises whether type checking in this language is decidable. In this paper we show that type checking for TOOPLE, a minor variant of TOOPL (Typed Object-Oriented Programming Language), is decidable. The proof proceeds by showing that subtyping is decidable, that all terms of TOOPLE have minimum types...
Object-Oriented Programming and Standard ML
- In Record of the 1994 ACM SIGPLAN Workshop on ML and its Applications
, 1994
"... This paper explores connections between object-oriented programming and Standard ML. In particular we show that F-bounded polymorphism can be expressed using ML's polymorphism and a programming technique we call wrapping. The encoding of F-bounded polymorphism can be used to encode classes as ML mod ..."
Abstract
- Add to MetaCart
This paper explores connections between object-oriented programming and Standard ML. In particular we show that F-bounded polymorphism can be expressed using ML's polymorphism and a programming technique we call wrapping. The encoding of F-bounded polymorphism can be used to encode classes as ML modules. 1 Introduction Object-oriented programming provides a range of concepts that purportedly facilitate encapsulation, code reuse and modularity. So does Standard ML. However, it is not obvious how the concepts provided by object-oriented programming (OOP) correspond to concepts in functional programming languages. In this paper we explore the following relationships: OOP Standard ML object value object type recursive (record) type subtyping coercion functions F-bounded ML-polymorphism polymorphism with wrapper types classes modules class inheritance module dependency The relationships of the first three lines are well studied[Car88,Red88,CP89]. The emphasis of this paper is on ...

