Proceedings Article10.1145/317636.317798
Representing Java classes in a typed intermediate language
Christopher League,Zhong Shao,Valery Trifonov +2 more
- 01 Sep 1999
- Vol. 34, Iss: 9, pp 183-196
TL;DR: A conservative extension of the polymorphic lambda calculus (Fω) is proposed as an intermediate language for compiling languages with name-based class and interface hierarchies, and a formal translation from a subset of Java is provided, including classes, interfaces, and private instance variables.
read more
Abstract: We propose a conservative extension of the polymorphic lambda calculus (Fω) as an intermediate language for compiling languages with name-based class and interface hierarchies. Our extension enriches standard Fω with recursive types, existential types, and row polymorphism, but only ordered records with no subtyping. Basing our language on Fω 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.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
•Book
Types and Programming Languages
Benjamin C. Pierce
- 01 Jan 2002
TL;DR: This text provides a comprehensive introduction both to type systems in computer science and to the basic theory of programming languages, with a variety of approaches to modeling the features of object-oriented languages.
2.7K
Technical Overview of the Common Language Runtime
Erik Meijer,John Gough +1 more
- 01 Jan 2001
TL;DR: The technical details of the CLI are briefly described and a comparison is made with the Java virtual machine (JVM), making it a much more difficult target for languages other than Java.
•Proceedings Article
Type-based hot swapping of running modules
Dominic Duggan
- 01 Jan 2001
TL;DR: In this article, a type-based approach to hot swapping of running modules is described, based on a reflective mechanism for dynamically adding type sharing constraints to the type system, realized by programmer-defined version adapters in the run-time.
87
Type-based hot swapping of running modules (extended abstract)
Dominic Duggan
- 01 Oct 2001
TL;DR: A type-based approach to hot swapping running modules is described, based on a reflective mechanism for dynamically adding type sharing constraints to the type system, realized by programmer-defined version adapters in the run-time.
52
Type-preserving compilation of Featherweight Java
TL;DR: This work provides a foundation for supporting certifying compilation of Java-like class-based languages in a type-theoretic framework and extends naturally to a significant subset of Java, including interfaces and privacy.
References
•Book
The Java Virtual Machine Specification
Tim Lindholm,Frank Yellin +1 more
- 19 Sep 1996
TL;DR: In this article, the authors present a detailed overview of the Java Virtual Machine, including the internal structure of the class file format, the internal form of Fully Qualified Class and Interface names, and the implementation of new class instances.
Towards a theory of type structure
John C. Reynolds
- 09 Apr 1974
TL;DR: It can be shown that B maps every type expression into a functor from C T into C, that w = w' implies w[w] = B[w'], and that B[WlI: 2](~) = B [Wl][ D I t I B[ w2](D) ]
1K
•Book
Java Virtual Machine Specification
Tim Lindholm,Frank Yellin +1 more
- 01 Apr 1999
TL;DR: The Java Virtual Machine as discussed by the authors is the technology that enables the Java 2 platform to host applications on any computer or operating system without rewriting or recompiling, and is the complete and definitive specification for the technology.
918
Simple type-theoretic foundations for object-oriented programming
TL;DR: A formal, type-theoretic account of the basic mechanisms of object-oriented programming: encapsulation, message passing, subtyping and inheritance, by modelling object encapsulation in terms of existential types instead of the recursive records used in recent studies.
A paradigmatic object-oriented programming language: Design, static typing and semantics†
TL;DR: This work describes the design of TOOPL, a paradigmatic, statically-typed, functional, object-oriented programming language which supports classes, objects, methods, hidden instance variables, subtypes and inheritance, and chooses to separate the inheritance and subtyping hierarchy in the language.
Related Papers (5)
Robert Harper,Greg Morrisett +1 more
- 25 Jan 1995
Tim Lindholm,Frank Yellin +1 more
- 19 Sep 1996
James Gosling,Bill Joy,Guy L. Steele +2 more
- 12 Sep 1996