Skip to main content

Using Smalltalk as a Reflective Executable Meta-language

  • Conference paper
Model Driven Engineering Languages and Systems (MODELS 2006)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4199))

Abstract

Object-oriented meta-languages such as MOF or EMOF are often used to specify domain specific languages. However, these meta-languages lack the ability to describe behavior or operational semantics. Several approaches have used a subset of Java mixed with OCL as executable meta-languages. In this paper, we report our experience of using Smalltalk as an executable meta-language. We validated this approach in incrementally building over the last decade, Moose, a meta-described reengineering environment. The reflective capabilities of Smalltalk support a uniform way of letting the developer focus on his tasks while at the same time allowing him to meta-describe his domain model. The advantage of our approach is that the developer uses the same tools and environment he uses for his regular tasks.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Atkinson, C., Kuehne, T.: The essence of multilevel metamodeling. In: Gogolla, M., Kobryn, C. (eds.) UML 2001. LNCS, vol. 2185, pp. 19–33. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  2. Atkinson, C., Kuehne, T.: Concepts for comparing modeling tool architecture. In: Proceedings of the UML Conference. LNCS, vol. 3713, pp. 19–33. Springer, Heidelberg (2005)

    Google Scholar 

  3. Bergel, A., Ducasse, S., Nierstrasz, O.: Classbox/J: Controlling the scope of change in Java. In: Proceedings of Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2005), pp. 177–189. ACM Press, New York (2005)

    Google Scholar 

  4. Bézivin, J., Gerbé, O.: Towards a precise definition of the OMG/MDA framework. In: Proceedings Automated Software Engineering (ASE 2001), pp. 273–282. IEEE Computer Society, Los Alamitos (2001)

    Chapter  Google Scholar 

  5. Bobrow, D.G., Gabriel, R.P., White, J.L.: Clos in context — the shape of the design. In: Paepcke, A. (ed.) Object-Oriented Programming: the CLOS perspective, pp. 29–61. MIT Press, Cambridge (1993)

    Google Scholar 

  6. Budinsky, F., Steinberg, D., Merks, E., Ellersick, R., Grose, T.: Eclipse Modeling Framework. Addison Wesley Professional, Reading (2003)

    Google Scholar 

  7. Clark, T., Evans, A., Sammut, P., Willans, J.: Applied metamodelling: A foundation for language driven development (2004)

    Google Scholar 

  8. Demeyer, S., Ducasse, S.: Metrics, do they really help? In: Malenfant, J. (ed.) Proceedings LMO 1999 (Languages et Modèles à Objets), pp. 69–82. Hermes Science Publications, Paris (1999)

    Google Scholar 

  9. Ducasse, S., Demeyer, S. (eds.): The FAMOOS Object-Oriented Reengineering Handbook, University of Bern (October 1999)

    Google Scholar 

  10. Demeyer, S., Ducasse, S., Lanza, M.: A hybrid reverse engineering platform combining metrics and program visualization. In: Balmas, F., Blaha, M., Rugaber, S. (eds.) Proceedings WCRE 1999 6th Working Conference on Reverse Engineering, IEEE, Los Alamitos (1999)

    Google Scholar 

  11. Ducasse, S., Gîrba, T., Lanza, M., Demeyer, S.: Moose: a collaborative and extensible reengineering environment. In: Tools for Software Maintenance and Reengineering. RCOST / Software Technology Series, pp. 55–71. Franco Angeli, Milano (2005)

    Google Scholar 

  12. Ducasse, S., Lanza, M.: The class blueprint: Visually supporting the understanding of classes. IEEE Transactions on Software Engineering 31(1), 75–90 (2005)

    Article  Google Scholar 

  13. Devos, M., Tilman, M.: Incremental development of a repository-based framework supporting organizational inquiry and learning. In: OOPSLA 1998 Practioner’s Report (1998)

    Google Scholar 

  14. Gîrba, T.: Modeling History to Understand Software Evolution. PhD thesis, University of Berne, Berne (November 2005)

    Google Scholar 

  15. Gîrba, T., Ducasse, S.: Modeling history to analyze software evolution. International Journal on Software Maintenance: Research and Practice (JSME) 18, 207–236 (2006)

    Article  Google Scholar 

  16. Goldberg, A., Robson, D.: Smalltalk 80: the Language and its Implementation. Addison Wesley, Reading (1983)

    MATH  Google Scholar 

  17. Knuth, D.E.: Literate Programming. Center for the Study of Language and Information, Stanford, California (1992)

    Google Scholar 

  18. Lanza, M., Ducasse, S.: Codecrawler–an extensible and language independent 2d and 3d software visualization tool. In: Tools for Software Maintenance and Reengineering. RCOST/Software Technology Series, pp. 74–94. Franco Angeli, Milano (2005)

    Google Scholar 

  19. Muller, P.-A., Fleurey, F., Jézéquel, J.-M.: Weaving executability into object-oriented meta-languages. In: Briand, L.C., Williams, C. (eds.) MoDELS 2005. LNCS, vol. 3713, pp. 264–278. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  20. Muller, P.-A., Studer, P., Fondement, F., Bézivin, J.: Independent web application modeling and development with netsilon. Software and System Modeling 4(4), 424–442 (2005)

    Article  Google Scholar 

  21. Mellor, S.J., Tockey, S., Arthaud, R., LeBlanc, P.: Software-platform-independent, precise action specifications for UML. In: Bézivin, J., Muller, P.-A. (eds.) UML 1998. LNCS, vol. 1618, pp. 281–286. Springer, Heidelberg (1999)

    Google Scholar 

  22. Nierstrasz, O., Ducasse, S., Gîrba, T.: The story of Moose: an agile reengineering environment. In: Proceedings of the European Software Engineering Conference (ESEC/FSE 2005), pp. 1–10. ACM Press, New York (2005)

    Google Scholar 

  23. Object Management Group. Meta object facility (MOF) specification. Technical Report ad/97-08-14, Object Management Group (September 1997)

    Google Scholar 

  24. Object Management Group. Meta object facility (MOF) 2.0 core final adopted specification. Technical report, Object Management Group (2004)

    Google Scholar 

  25. Pollet, D.: Une architecture pour les transformations de modèles et la restructuration de modèles UML. PhD thesis, Université de Rennes 1 (June 2005)

    Google Scholar 

  26. Riehle, D., Fraleigh, S., Bucka-Lassen, D., Omorogbe, N.: The architecture of a uml virtual machine. In: Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2001), pp. 327–341 (2001)

    Google Scholar 

  27. Rivard, F.: Pour un lien d’instanciation dynamique dans les langages à classes. In: JFLA 1996, INRIA — collection didactique (January 1996)

    Google Scholar 

  28. Riehle, D., Tilman, M., Johnson, R.: Dynamic object model. In: Pattern Languages of Program Design 5, Addison-Wesley, Reading (2005)

    Google Scholar 

  29. Tichelaar, S., Ducasse, S., Demeyer, S.: FAMIX: Exchange experiences with CDIF and XMI. In: Proceedings of the ICSE 2000 Workshop on Standard Exchange Format (WoSEF 2000) (June 2000)

    Google Scholar 

  30. Yoder, J.W., Johnson, R.: The adaptive object model architectural style. In: Proceeding of The Working IEEE/IFIP Conference on Software Architecture 2002 (WICSA3 2002) (August 2002)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ducasse, S., Gîrba, T. (2006). Using Smalltalk as a Reflective Executable Meta-language. In: Nierstrasz, O., Whittle, J., Harel, D., Reggio, G. (eds) Model Driven Engineering Languages and Systems. MODELS 2006. Lecture Notes in Computer Science, vol 4199. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11880240_42

Download citation

  • DOI: https://doi.org/10.1007/11880240_42

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-45772-5

  • Online ISBN: 978-3-540-45773-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics