Title of article :
Representing Java Classes in a Typed Intermediate Language^
Author/Authors :
Shao، Zhong نويسنده , , League، Christopher نويسنده , , Trifonov، Valery نويسنده ,
Issue Information :
روزنامه با شماره پیاپی سال 1999
Abstract :
We propose a conservative extension of the polymorphic lambda calculus (F^w) as an intermediate language for compiling languages with name-based class and interface hierarchies. Our extension enriches standard F^w with recursive types, existential types, and row polymorphism, but only ordered records with no subtyping. Basing our language on F^w 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 :
profile-guided optimizations , program representations , data-flow analysis , register promotion
Journal title :
A C M Sigplan (Programming Languages) Sigplan Notices
Journal title :
A C M Sigplan (Programming Languages) Sigplan Notices