Lifted Java: A Minimal Calculus for Translation Polymorphism
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.
KeywordsFormal foundations language design lifting/lowering Translation Polymorphism type systems
Unable to display preview. Download preview PDF.
- 3.De Fraine, B.: Language Facilities for the Deployment of Reusable Aspects. Ph.D. thesis, Vrije Universiteit Brussel (2009), http://soft.vub.ac.be/soft/_media/members/brunodefraine/phd.pdf
- 6.Ernst, E., Ingesman, M.D.: Coq source for Lifted Java (2011), available at http://users-cs.au.dk/mdi/liftedJavaCoq.tar.gz
- 9.Herrmann, S.: A precise model for contextual roles: The programming language Object Teams/Java. Appl. Ontol. 2, 181–207 (2007)Google Scholar
- 10.Herrmann, S., Hundt, C., Mehner, K.: Translation polymorphism in Object Teams. Tech. rep., Technical University Berlin (2004)Google Scholar
- 11.Herrmann, S., Hundt, C., Mosconi, M.: OT/J Language Definition, version 1.3 edn. (2010)Google Scholar
- 15.Mezini, M., Lieberherr, K.: Adaptive plug-and-play components for evolutionary software development. In: Proceedings of the 13th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, OOPSLA 1998, pp. 97–116. ACM, New York (1998)Google Scholar
- 16.Mezini, M., Seiter, L., Lieberherr, K.: Component integration with pluggable composite adapters. In: Software Architectures and Component Technology: The State of the Art in Research and Practice, Kluwer Academic Publishers, Dordrecht (2000)Google Scholar