skip to main content
10.1145/1297027.1297044acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

Can programming be liberated from the two-level style: multi-level programming with deepjava

Published:21 October 2007Publication History

ABSTRACT

Since the introduction of object-oriented programming few programming languages have attempted to provide programmers with more than objects and classes, i.e., more than two levels. Those that did, almost exclusively aimed at describing language properties-i.e., their metaclasses exert linguistic control on language concepts and mechanisms-often in order to make the language extensible. In terms of supporting logical domain classification levels, however, they are still limited to two levels.

In this paper we conservatively extend the object-oriented programming paradigm to feature an unbounded number of domain classification levels. We can therefore avoid the introduction of accidental complexity into programs caused by accommodating multiple domain levels within only two programming levels. We present a corresponding language design featuring ``deep instantiation'' and demonstrate its features with a running example. Finally, we outline the implementation of our compiler prototype and discuss the potentials of further developing our language design.

References

  1. Martín Abadi and Luca Cardelli. On subtyping and matching. In W. Olthoff, editor, Proceedings ECOOP '95, LNCS 952, pages 145--167, Aarhus, Denmark, August 1995. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Colin Atkinson and Thomas Kühne. Meta-level independent modeling. In International Workshop Model Engineering (in Conjunction with ECOOP'2000). Springer Verlag, Cannes, France, June 2000.Google ScholarGoogle Scholar
  3. Colin Atkinson and Thomas Kühne. The essence of multilevel metamodeling. In Martin Gogolla and Cris Kobryn, editors, Proceedings of the 4 th International Conference on the UML 2000, Toronto, Canada, LNCS 2185, pages 19--33. Springer Verlag, October 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Colin Atkinson and Thomas Kühne. Reducing accidental complexity in domain models. Journal on Software and Systems Modeling, to appear 2008, DOI: 10.1007/s10270-007-0061-0.Google ScholarGoogle Scholar
  5. John W. Backus. Can programming be liberated from the von Neumann style? A functional style and its algebra of programs. Communications of the ACM, 21(8):613--641, August 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Noury M. N. Bouraqadi-Saâdani, Thomas Ledoux, and Fred Rivard. Safe metaclass programming. In Proceedings of the 13th ACM SIGPLAN conference on Object-Oriented programming, systems, languages, and applications, pages 84--96, New York, NY, USA, 1998. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Martin Bravenboer, René de Groot, and Eelco Visser. MetaBorg in action: Examples of domain-specific language embedding and assimilation using Stratego/XT. In R. Lämmel and J. Saraiva, editors, Proceedings of GTTSE'05, LNCS 4143, pages 297--311. Springer, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Frederick P. Brooks. No silver bullet: essence and accidents of software engineering. Computer, 20(4):10--19, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Luca Cardelli. Structural subtyping and the notion of power type. In Conference Record of the Fifteenth Annual ACM Symposium on Principles of Programming Languages, pages 70--79, San Diego, California, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Cesar Gonzalez-Perez and Brian Henderson-Sellers. A powertype-based metamodelling framework. Software and Systems Modeling, V5(1):72--90, April 2006.Google ScholarGoogle Scholar
  11. Shigeru Chiba. Load-time structural reflection in java. In Proceedings of the 14th European Conference on Object-Oriented Programming, LNCS 1850, pages 313--336, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Peter Coad. Object-oriented patterns. Communications of the ACM, 35(9):152--159, September 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. P. Cointe. Reflective languages and metalevel architectures. ACM Comput. Surv., 28(4es):151, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Pierre Cointe. Metaclasses are First class: The objvlisp model. SIGPLAN Notices, 22(12):156--162, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Erik Ernst. gbeta-A Language with Virtual Attributes, Block Structure, and Propagating, Dynamic Inheritance. PhD thesis, Devise, Department of Computer Science, University of Aarhus, Aarhus, Denmark, June 1999.Google ScholarGoogle Scholar
  16. Erik Ernst. Family polymorphism. In Jørgen Lindskov Knudsen, editor, Proceedings of ECOOP 2001, LNCS 2072, pages 303--326, Heidelberg, Germany, 2001. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Adele Goldberg and David Robson. Smalltalk-80: The Language and its Implementation. Addison-Wesley, Reading, MA, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Robert C. Goldstein and Veda C. Storey. Materialization. IEEE Transactions on Knowledge & Data Engineering, 6(5):835--842, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Matthias Jarke, Rainer Gallersdörfer, Manfred A. Jeusfeld, Martin Staudt, and Stefan Eherer. ConceptBase-A deductive object base for meta data management. Journal of Intelligent Information Systems, 4(2):167--192, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Ralph Johnson and Bobby Woolf. Type object. In Robert C. Martin, Dirk Riehle, and Frank Buschmann, editors, Pattern Languages of Program Design 3, pages 47--65. Addison-Wesley, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Gregor Kiczales, Jim des Rivières, and Daniel G. Bobrow. The Art of the Metaobject Protocol. MIT Press, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-oriented programming. In Proceedings of the European Conference on Object-Oriented Programming, Finland, pages 222--242, Berlin, June 1997. Springer Verlag, LNCS 1241.Google ScholarGoogle ScholarCross RefCross Ref
  23. Thomas Kühne. Matters of (meta-) modeling. Journal on Software and Systems Modeling, 5(4):369--385, 2006.Google ScholarGoogle Scholar
  24. Craig Larman. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process. Prentice Hall, second edition edition, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Thomas Ledoux and Pierre Cointe. Explicit metaclasses as a tool for improving the design of class libraries. In Proceedings of ISOTAS, LNCS 1049, pages 38--55. Springer Verlag, March 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Barbara H. Liskov and Jeannette M. Wing. A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems, 16(6):1811--1841, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Fernando Daniel Lyardet. The dynamic template pattern. In Proceedings of the Conference on Pattern Languages of Design, 1997.Google ScholarGoogle Scholar
  28. Ole L. Madsen, Kristen Nygaard, and Birger Möller-Pedersen. Object-Oriented Programming in the BETA Programming Language. Addison-Wesley and ACM Press, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Pattie Maes and D. Nardi, editors. Meta-Level Architectures and Reflection. Elsevier Science Inc., New York, NY, USA, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Bertrand Meyer. Object-Oriented Software Construction. Prentice Hall, ISBN 0-13-629155-4, 2nd edition, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. John Mylopoulos, Alexander Borgida, Matthias Jarke, and Manolis Koubarakis. Telos: Representing knowledge about information systems. Information Systems, 8(4):325--362, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Nathaniel Nystrom, Michael R. Clarkson, and Andrew C. Myers. Polyglot: An extensible compiler framework for Java. In Proceedings of the 12th International Conference on Compiler Construction, LNCS 2622, pages 138--152. Springer, April 2003.Google ScholarGoogle ScholarCross RefCross Ref
  33. Jim Odell. Power types. Journal of Object-Oriented Programming, 7(2):8--12, May 1994.Google ScholarGoogle Scholar
  34. OMG. Unified Modeling Language Superstructure Specification, Version 2.1.1, OMG document formal/07-02-05, February 2007.Google ScholarGoogle Scholar
  35. Alain Pirotte, Esteban Zimányi, David Massart, and Tatiana Yakusheva. Materialization: A powerful and ubiquitous abstraction pattern. In Conference on Very Large Database (VLDB'94), pages 630--641. Morgan Kaufman, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. David L. Shang. Covariant deep subtyping reconsidered. ACM SIGPLAN Notices, 30(5):21--28, May 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Joseph W. Yoder and Ralph E. Johnson. The adaptive object--model architectural style. In Proceedings of the 3rd IEEE/IFIP Conference on Software Architecture: System Design, Development and Maintenance, pages 3--27, Deventer, The Netherlands, The Netherlands, 2002. Kluwer, B.V. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. David Zook, Shan Shan Huang, and Yannis Smaragdakis. Generating AspectJ programs with Meta-AspectJ. In Gabor Karsai and Eelco Visser, editors, Proceedings of GPCE'04, LNCS 3286, pages 1--18. Springer, 2004.Google ScholarGoogle Scholar

Index Terms

  1. Can programming be liberated from the two-level style: multi-level programming with deepjava

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!