Multi-Level Programming with Java

Multi-Level Programming

Based on the observation that the traditional object-oriented paradigm limits modelers and programmers to only two-levels (classes and objects) and hence forces them to introduce accidental complexity in their models and programs, DeepJava adds an unbounded number of metalevels to Java objects and classes. Classes and their (potentially new) features may be created at runtime just like objects.

Ontological Metamodeling

Unlike previous languages with additional metalevels that added linguistic metamodeling control (i.e., a way to control the language itself), DeepJava enables ontological metamodeling allowing its users to reflect the problem domain structure without resorting to workarounds such as the Item Description/Type Object pattern or the User-Defined Product framework.

Static Typing

DeepJava does not achieve its flexibility by giving up static typing. Through the concept of deep instantiation and potency one may statically guarantee features of classes to be created at runtime. These mechanisms reconcile dynamic type creation with static typing and are more intuitive and concise than comparable approaches such as powertypes or materialization.

Exciting Language Features

By adding more programmer definable levels, DeepJava not only enables a direct mapping of multi-level problems to programs, but also a new, more generic way of specifying object types (abstract type-definitions) and a new approach to genericity based on classification rather than the traditional generalization.


The current prototype compiler was implemented with the Polyglot compiler front end framework supervised by Andrew Myers and developed by Nathaniel Nystrom, Xin Qi, and Steve Chong.


This page will be extended in the future. For now, please take a look at these related publications:

Thomas Kühne and Daniel Schreiber
"Can Programming be Liberated from the Two-Level Style? — Multi-Level Programming with DeepJava"
ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages and Applications: OOPSLA'07, October 21–25, Montréal, Canada, 2007
Thomas Kühne
"Making Modeling Languages Fit for Model-Driven Development"
Proceedings of the 4th International Workshop on Software Language Engineering (ATEM 2007). In association with MoDELS 2007, September 30– October 5, Nashville, USA, 2007
Colin Atkinson and Thomas Kühne
"Reducing Accidental Complexity in Domain Models"
Journal on Software and Systems Modeling, 2007
Colin Atkinson and Thomas Kühne
"A Tour of Language Customization Concepts"
Advances in Computers, Volume 70, Marvin Zelkowitz, editor, p. 105–161, ISBN: 978-0-12-373747-2, Academic Press, Elsevier, June 2007
Thomas Kühne
"Matters of (Meta-)Modeling"
Journal on Software and Systems Modeling, Volume 5, Number 4, 369–385, December 2006
Thomas Kühne
"Clarifying Matters of (Meta-)Modeling"
Journal on Software and Systems Modeling, Volume 5, Number 4, 395–401, December 2006. (a response to Wolfgang Hesse's "More matters on (meta-)modelling: remarks on Thomas Kühne’s “matters”" in the same issue, 387–394.
Thomas Kühne and Friedrich Steimann
"Tiefe Charakterisierung"
Appeared in B Rumpe, W Hesse (editors) Modellierung 2004, LNI 45 (GI, 2004), p. 121–133, Marburg, March 2004
Colin Atkinson and Thomas Kühne
"The Essence of Multilevel Metamodeling"
Proccedings of the 4th International Conference on the Unified Modeling Language, Toronto, Canada, 1–5 October, 2001
1925 hits since 29.5.2008
Contact Us | Section Map | Disclaimer | RSS feed RSS FeedBack to top ^

Page Updated: 12 Oct 2015. © Victoria University of Wellington, New Zealand, unless otherwise stated