Abstract
Finding typed encodings of object-oriented into procedural or functional programming sheds light on the theoretical foundations of object-oriented languages and their specific typing constructs and techniques. This article describes a type preserving and computationally adequate interpretation of a full-fledged object calculus that supports message passing and constructs for object update and extension. The target theory is a higher-order λ-calculus with records and recursive folds/unfolds, polymorphic and recursive types, and subtyping. The interpretation specializes to calculi of nonextensible objects, and validates the expected subtypin
- Abadi, M. 1994. Baby Modula--3 and a theory of objects. J. Funct. Prog. 4, 2, 249--283.]]Google Scholar
- Abadi, M. and Cardelli, L. 1996a. On subtyping and matching. ACM Trans. Prog. Lang. Syst. 11, 4, 401--423.]] Google Scholar
- Abadi, M. and Cardelli, L. 1996b. A Theory of Objects. Monographs in Computer Science. Springer-Verlag, New York.]] Google Scholar
- Abadi, M., Cardelli, L., and Viswanathan, R. 1996. An interpretation of objects and object types. In Proceedings of the 1996 ACM Conference on Principles of Programming Languages. ACM, New York, 396--409.]] Google Scholar
- Bono, V., and Bugliesi, M. 1999. Matching for the Lambda calculus of objects. Theoret. Comput. Sci. 212, 1/2, 101--140.]] Google Scholar
- Bono, V., Bugliesi, M., Dezani, M., and Liquori, L. 1999. Subtyping constraints for incomplete objects. Funda. Inf. 38, 4, 325--364.]]Google Scholar
- Bono, V. and Liquori, L. 1995. A subtyping for the Fisher--Honsell--Mitchell Lambda calculus of objects. In Proceedings of CSL'95. Lecture Notes in Computer Science, vol. 933. Springer-Verlag, New York, 16--30.]] Google Scholar
- Boudol, G. and Dal Zilio, S. 1999. An interpretation of extensible objects. In Proceedings of FCT'99. Lecture Notes in Computer Science, vol. 1684. Springer-Verlag, New York, 148--160.]] Google Scholar
- Bruce, K. 1994. A paradigmatic object-oriented programming language: Design, static typing and semantcs. J. of Funct. Prog. 1, 4, 127--206.]]Google Scholar
- Bruce, K., Cardelli, L., and Pierce, B. 1999. Comparing object encodings. Inf. Comput. 155, 1/2, 108--133.]] Google Scholar
- Cardelli, L. 1988. A semantics of multiple inheritance. Inf. Comput. 76, 138--164.]] Google Scholar
- Cook, W. 1987. A self-ish model of inheritance. Manuscript.]]Google Scholar
- Cook, W. 1989. A denotational semantics of inheritance. Ph.D. dissertation, Brown University.]] Google Scholar
- Crary, K. 1999. Simple, efficient object encoding using intersection types. Tech. rep., CMU-CS-99-100, Cornell University.]] Google Scholar
- Fisher, K., Honsell, F., and Mitchell, J. C. 1994. A Lambda calculus of objects and method specialization. Nordic J. Comput. 1, 1, 3--37.]] Google Scholar
- Fisher, K. and Mitchell, J. C. 1995. A delegation-based object calculus with subtyping. In Proceedings of FCT'95. Lecture Notes in Computer Science, vol. 965. Springer-Verlag, New York, 42--61.]] Google Scholar
- Fisher, K. and Mitchell, J. C. 1998. On the relationship between classes, objects, and data abstraction. Theory Pract. Obj. Syst. 4, 1, 3--25.]] Google Scholar
- Kamin, S. 1988. Inheritance in Smalltalk-80: A denotational definition. In Proceedings of the 1988 ACM Conference on Principles of Programming Languages. ACM, New York, 80--87.]] Google Scholar
- Liquori, L. 1997. An extended theory of primitive objects: First order system. In Proceedings of ECOOP'97. Lecture Notes in Computer Science, vol. 1241. Springer-Verlag, New York, 146--169.]]Google Scholar
- Pierce, B. and Turner, D. 1994. Simple type-theoretic foundations for object-oriented programming. J. Funct. Prog. 4, 2, 207--248.]]Google Scholar
- Reddy, U. 1988. Objects as Closures: Abstarct Semantics of Object Oriented Languages. In Proceedings of the ACM International Conference on LISP and Functional Programming. ACM, New York, 289--297.]] Google Scholar
- Rémy, D. 1998. From classes to objects via subtyping. In Proceedings of ESOP'98. Lecture Notes in Computer Science, vol. 1381. Springer-Verlag, New York.]] Google Scholar
- Riecke, J. C. and Stone, C. A. 1998. Privacy via Subsumption. In Proceedings of FOOL'98. Extented version to appear in Theory and Practice of Object Systems.]]Google Scholar
- Viswanathan, R. 1998. Full abstraction and first-order objects with recursive types and subtyping. In Proceedings of LICS'98. 380--391.]] Google Scholar
Index Terms
- Typed interpretations of extensible objects
Recommendations
An idea for a type system of multi-paradigm language with extensible syntax
CompSysTech '12: Proceedings of the 13th International Conference on Computer Systems and TechnologiesThis article proposes a type system for a multi-paradigm language paradigm. A practical solution that provides the benefits of both static and dynamic typing is proposed, while using the features of the prototype - extensible declarative syntax. A ...
A Subtyping for Extensible, Incomplete Objects
We extend the type system for the Lambda Calculus of Objects [16] with a mechanism of width subtyping and a treatment of incomplete objects. The main novelties over previous work are the use of subtype-bounded quantification to capture a new and more ...
Java bytecode as a typed term calculus
PPDP '02: Proceedings of the 4th ACM SIGPLAN international conference on Principles and practice of declarative programmingWe propose a type system for the Java bytecode language, prove the type soundness, and develop a type inference algorithm. In contrast to the existing proposals, our type system yields a typed term calculus similar to type systems of lambda calculi. ...
Comments