Representing Java classes in a typed intermediate language
- 1 September 1999
- conference paper
- Published by Association for Computing Machinery (ACM)
- Vol. 34 (9) , 183-196
- https://doi.org/10.1145/317636.317798
Abstract
We propose a conservative extension of the polymorphic lambda calculus ( makes it also a suitable target for translation from other higher-order languages; this enables the safe interoperation between class-based and higher-order languages and the reuse of common type-directed optimization techniques, compiler back ends, and runtime support.We present the formal semantics of our intermediate language and illustrate its features by providing a formal translation from a subset of Java, including classes, interfaces, and private instance variables. The translation preserves the name-based hierarchical relation between Java classes and interfaces, and allows access to private instance variables of parameters of the same class as the one defining the method. It also exposes the details of method invocation and instance variable access and allows many standard optimizations to be performed on the object-oriented code.Keywords
This publication has 19 references indexed in Scilit:
- Comparing Object EncodingsInformation and Computation, 1999
- Type dispatch for named hierarchical typesPublished by Association for Computing Machinery (ACM) ,1999
- Compiling standard ML to Java bytecodesPublished by Association for Computing Machinery (ACM) ,1998
- Trust in the λ-calculusJournal of Functional Programming, 1997
- Pizza into JavaPublished by Association for Computing Machinery (ACM) ,1997
- An interpretation of typed OOP in a language with stateHigher-Order and Symbolic Computation, 1995
- A paradigmatic object-oriented programming language: Design, static typing and semanticsJournal of Functional Programming, 1994
- Simple type-theoretic foundations for object-oriented programmingJournal of Functional Programming, 1994
- A semantic basis for QuestJournal of Functional Programming, 1991
- Towards a theory of type structureLecture Notes in Computer Science, 1974