Lifted Java: A Minimal Calculus for Translation Polymorphism

  • Matthias Diehn Ingesman
  • Erik Ernst
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6705)

Abstract

To support roles and similar notions involving multiple views on an object, languages like Object Teams and CaesarJ include mechanisms known as lifting and lowering. These mechanisms connect pairs of objects of otherwise unrelated types, and enables programmers to consider such a pair almost as a single object which has both types. In the terminology of Object Teams this is called translation polymorphism. In both Object Teams and CaesarJ the type system of the Java programming language has been extended to support this through the use of advanced language features. However, so far the soundness of translation polymorphism has not been proved.

This paper presents a simple model that extends Featherweight Java with the core operations of translation polymorphism, provides a Coq proof that its type system is sound, and shows that the ambiguity problem associated with the so-called smart lifting mechanism can be eliminated by a very simple semantics for lifting.

Keywords

Formal foundations language design lifting/lowering Translation Polymorphism type systems 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Matthias Diehn Ingesman
    • 1
  • Erik Ernst
    • 1
  1. 1.Department of Computer ScienceAarhus UniversityDenmark

Personalised recommendations