Nothing Special   »   [go: up one dir, main page]

skip to main content
article

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

Published: 21 October 2007 Publication 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.
[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.
[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.
[4]
Colin Atkinson and Thomas Kühne. Reducing accidental complexity in domain models. Journal on Software and Systems Modeling, to appear 2008.
[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.
[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.
[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.
[8]
Frederick P. Brooks. No silver bullet: essence and accidents of software engineering. Computer, 20(4):10--19, 1987.
[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.
[10]
Cesar Gonzalez-Perez and Brian Henderson-Sellers. A powertype-based metamodelling framework. Software and Systems Modeling, V5(1):72--90, April 2006.
[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.
[12]
Peter Coad. Object-oriented patterns. Communications of the ACM, 35(9):152--159, September 1992.
[13]
P. Cointe. Reflective languages and metalevel architectures. ACM Comput. Surv., 28(4es):151, 1996.
[14]
Pierre Cointe. Metaclasses are First class: The objvlisp model. SIGPLAN Notices, 22(12):156--162, 1987.
[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.
[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.
[17]
Adele Goldberg and David Robson. Smalltalk-80: The Language and its Implementation. Addison-Wesley, Reading, MA, 1983.
[18]
Robert C. Goldstein and Veda C. Storey. Materialization. IEEE Transactions on Knowledge & Data Engineering, 6(5):835--842, 1994.
[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.
[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.
[21]
Gregor Kiczales, Jim des Rivières, and Daniel G. Bobrow. The Art of the Metaobject Protocol. MIT Press, 1991.
[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.
[23]
Thomas Kühne. Matters of (meta-) modeling. Journal on Software and Systems Modeling, 5(4):369--385, 2006.
[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.
[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.
[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.
[27]
Fernando Daniel Lyardet. The dynamic template pattern. In Proceedings of the Conference on Pattern Languages of Design, 1997.
[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.
[29]
Pattie Maes and D. Nardi, editors. Meta-Level Architectures and Reflection. Elsevier Science Inc., New York, NY, USA, 1988.
[30]
Bertrand Meyer. Object-Oriented Software Construction. Prentice Hall, ISBN 0-13-629155-4, 2nd edition, 1997.
[31]
John Mylopoulos, Alexander Borgida, Matthias Jarke, and Manolis Koubarakis. Telos: Representing knowledge about information systems. Information Systems, 8(4):325--362, 1990.
[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.
[33]
Jim Odell. Power types. Journal of Object-Oriented Programming, 7(2):8--12, May 1994.
[34]
OMG. Unified Modeling Language Superstructure Specification, Version 2.1.1, OMG document formal/07-02-05, February 2007.
[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.
[36]
David L. Shang. Covariant deep subtyping reconsidered. ACM SIGPLAN Notices, 30(5):21--28, May 1995.
[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.
[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.

Cited By

View all
  • (2024)Misconceptions about Potency-Based Deep InstantiationProceedings of the ACM/IEEE 27th International Conference on Model Driven Engineering Languages and Systems10.1145/3652620.3688213(810-817)Online publication date: 22-Sep-2024
  • (2023)Handling complex representations in visual modeling tools for MDSD/DSM by means of code generator languagesJournal of Computer Languages10.1016/j.cola.2023.10120875(101208)Online publication date: Jun-2023
  • (2022)Multi-level modeling: cornerstones of a rationaleSoftware and Systems Modeling (SoSyM)10.1007/s10270-021-00955-121:2(451-480)Online publication date: 1-Apr-2022
  • Show More Cited By

Index Terms

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

      Recommendations

      Comments

      Please enable JavaScript to view thecomments powered by Disqus.

      Information & Contributors

      Information

      Published In

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 42, Issue 10
      Proceedings of the 2007 OOPSLA conference
      October 2007
      686 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/1297105
      Issue’s Table of Contents
      • cover image ACM Conferences
        OOPSLA '07: Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems, languages and applications
        October 2007
        728 pages
        ISBN:9781595937865
        DOI:10.1145/1297027
      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 21 October 2007
      Published in SIGPLAN Volume 42, Issue 10

      Check for updates

      Author Tags

      1. deep characterization
      2. domain metatypes
      3. ontological metamodeling

      Qualifiers

      • Article

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)10
      • Downloads (Last 6 weeks)2
      Reflects downloads up to 18 Nov 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2024)Misconceptions about Potency-Based Deep InstantiationProceedings of the ACM/IEEE 27th International Conference on Model Driven Engineering Languages and Systems10.1145/3652620.3688213(810-817)Online publication date: 22-Sep-2024
      • (2023)Handling complex representations in visual modeling tools for MDSD/DSM by means of code generator languagesJournal of Computer Languages10.1016/j.cola.2023.10120875(101208)Online publication date: Jun-2023
      • (2022)Multi-level modeling: cornerstones of a rationaleSoftware and Systems Modeling (SoSyM)10.1007/s10270-021-00955-121:2(451-480)Online publication date: 1-Apr-2022
      • (2022)Accidental complexity in multilevel modeling revisitedSoftware and Systems Modeling (SoSyM)10.1007/s10270-021-00938-221:2(517-542)Online publication date: 1-Apr-2022
      • (2022)Playground for multi-level modeling constructsSoftware and Systems Modeling (SoSyM)10.1007/s10270-021-00900-221:2(481-516)Online publication date: 1-Apr-2022
      • (2021)Multi-level conceptual modeling: Theory, language and applicationData & Knowledge Engineering10.1016/j.datak.2021.101894(101894)Online publication date: May-2021
      • (2020)Join potencyProceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings10.1145/3417990.3421411(1-5)Online publication date: 16-Oct-2020
      • (2019)Preserving multi-level semantics in conventional two-level modeling techniquesProceedings of the 22nd International Conference on Model Driven Engineering Languages and Systems10.1109/MODELS-C.2019.00025(142-151)Online publication date: 15-Sep-2019
      • (2019)By multi-layer to multi-level modelingProceedings of the 22nd International Conference on Model Driven Engineering Languages and Systems10.1109/MODELS-C.2019.00024(134-141)Online publication date: 15-Sep-2019
      • (2019)Multi-level modeling with DMLAProceedings of the 22nd International Conference on Model Driven Engineering Languages and Systems10.1109/MODELS-C.2019.00022(119-127)Online publication date: 15-Sep-2019
      • Show More Cited By

      View Options

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media