Using Smalltalk as a Reflective Executable Meta-language

  • Stéphane Ducasse
  • Tudor Gîrba
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4199)


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.


meta behavior description reflective language Smalltalk 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [AK01]
    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)CrossRefGoogle Scholar
  2. [AK05]
    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. [BDN05]
    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. [BG01]
    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)CrossRefGoogle Scholar
  5. [BGW93]
    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. [BSM+03]
    Budinsky, F., Steinberg, D., Merks, E., Ellersick, R., Grose, T.: Eclipse Modeling Framework. Addison Wesley Professional, Reading (2003)Google Scholar
  7. [CESW04]
    Clark, T., Evans, A., Sammut, P., Willans, J.: Applied metamodelling: A foundation for language driven development (2004)Google Scholar
  8. [DD99a]
    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. [DD99b]
    Ducasse, S., Demeyer, S. (eds.): The FAMOOS Object-Oriented Reengineering Handbook, University of Bern (October 1999)Google Scholar
  10. [DDL99]
    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. [DGLD05]
    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. [DL05]
    Ducasse, S., Lanza, M.: The class blueprint: Visually supporting the understanding of classes. IEEE Transactions on Software Engineering 31(1), 75–90 (2005)CrossRefGoogle Scholar
  13. [DT98]
    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. [G0̂5]
    Gîrba, T.: Modeling History to Understand Software Evolution. PhD thesis, University of Berne, Berne (November 2005)Google Scholar
  15. [GD06]
    Gîrba, T., Ducasse, S.: Modeling history to analyze software evolution. International Journal on Software Maintenance: Research and Practice (JSME) 18, 207–236 (2006)CrossRefGoogle Scholar
  16. [GR83]
    Goldberg, A., Robson, D.: Smalltalk 80: the Language and its Implementation. Addison Wesley, Reading (1983)zbMATHGoogle Scholar
  17. [Knu92]
    Knuth, D.E.: Literate Programming. Center for the Study of Language and Information, Stanford, California (1992)Google Scholar
  18. [LD05]
    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. [MFJ05]
    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)CrossRefGoogle Scholar
  20. [MSFB05]
    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)CrossRefGoogle Scholar
  21. [MTAL98]
    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. [NDG05]
    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. [OMG97]
    Object Management Group. Meta object facility (MOF) specification. Technical Report ad/97-08-14, Object Management Group (September 1997)Google Scholar
  24. [OMG04]
    Object Management Group. Meta object facility (MOF) 2.0 core final adopted specification. Technical report, Object Management Group (2004)Google Scholar
  25. [Pol05]
    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. [RFBL+01]
    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. [Riv96]
    Rivard, F.: Pour un lien d’instanciation dynamique dans les langages à classes. In: JFLA 1996, INRIA — collection didactique (January 1996)Google Scholar
  28. [RTJ05]
    Riehle, D., Tilman, M., Johnson, R.: Dynamic object model. In: Pattern Languages of Program Design 5, Addison-Wesley, Reading (2005)Google Scholar
  29. [TDD00]
    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. [YJ02]
    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

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Stéphane Ducasse
    • 1
    • 2
  • Tudor Gîrba
    • 1
  1. 1.Software Composition GroupUniversity of Bern 
  2. 2.Language and Software Evolution – LISTICUniversité de Savoie 

Personalised recommendations