Abstract types have existential type
ACM Transactions on Programming Languages and Systems (TOPLAS)
Inheritance in smalltalk-80: a denotational definition
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
F-bounded polymorphism for object-oriented programming
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Compiling polymorphism using intensional type analysis
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A type-based compiler for standard ML
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
An interpretation of typed OOP in a language
Lisp and Symbolic Computation - Special issue on state in programming languages (part I)
TIL: a type-directed optimizing compiler for ML
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
An interpretation of objects and object types
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Safe kernel extensions without run-time checking
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
Objective ML: a simple object-oriented extension of ML
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Making the future safe for the past: adding genericity to the Java programming language
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
On the relationship between classes, objects, and data abstraction
Theory and Practice of Object Systems - Third workshop on foundations of object-oriented languages (FOOL 3)
Implementing typed intermediate languages
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
The design of a class mechanism for Moby
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Representing Java classes in a typed intermediate language
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
From system F to typed assembly language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Featherweight Java: a minimal core calculus for Java and GJ
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Information and Computation
A type-theoretic interpretation of standard ML
Proof, language, and interaction
An efficient class and object encoding
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A Theory of Objects
Information and Computation - FOOL VII
TLCA '95 Proceedings of the Second International Conference on Typed Lambda Calculi and Applications
Towards a theory of type structure
Programming Symposium, Proceedings Colloque sur la Programmation
Compiling Java to a Typed Lambda-Calculus: A Preliminary Report
TIC '98 Proceedings of the Second International Workshop on Types in Compilation
Syntactic Considerations on Recursive Types
LICS '96 Proceedings of the 11th Annual IEEE Symposium on Logic in Computer Science
Low-level type systems for modularity and object-oriented constructs
Low-level type systems for modularity and object-oriented constructs
Toba: java for applications a way ahead of time (WAT) compiler
COOTS'97 Proceedings of the 3rd conference on USENIX Conference on Object-Oriented Technologies (COOTS) - Volume 3
Numbering matters: first-order canonical forms for second-order recursive types
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
The open verifier framework for foundational verifiers
TLDI '05 Proceedings of the 2005 ACM SIGPLAN international workshop on Types in languages design and implementation
Decidable subclassing-bounded quantification
TLDI '05 Proceedings of the 2005 ACM SIGPLAN international workshop on Types in languages design and implementation
Type-based verification of sssembly language for compiler debugging
TLDI '05 Proceedings of the 2005 ACM SIGPLAN international workshop on Types in languages design and implementation
A simple typed intermediate language for object-oriented languages
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A machine-checked model for a Java-like language, virtual machine, and compiler
ACM Transactions on Programming Languages and Systems (TOPLAS)
PLPV '07 Proceedings of the 2007 workshop on Programming languages meets program verification
A typed intermediate language for supporting interfaces
Proceedings of the 11th International Workshop on Formal Techniques for Java-like Programs
Precision in practice: a type-preserving java compiler
CC'03 Proceedings of the 12th international conference on Compiler construction
Inferable object-oriented typed assembly language
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Typed compilation against non-manifest base classes
CASSIS'05 Proceedings of the Second international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
Hi-index | 0.00 |
We present an efficient encoding of core Java constructs in a simple, implementable typed intermediate language. The encoding, after type erasure, has the same operational behavior as a standard implementation using vtables and self-application for method invocation. Classes inherit super-class methods with no overhead. We support mutually recursive classes while preserving separate compilation. Our strategy extends naturally to a significant subset of Java, including interfaces and privacy. The formal translation using Featherweight Java allows comprehensible type-preservation proofs and serves as a starting point for extending the translation to new features. Our work provides a foundation for supporting certifying compilation of Java-like class-based languages in a type-theoretic framework.