Multi-Level Programming with Java |
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.
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.
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.
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. |
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 |