Language support for model-driven software development

This paper is about language technology for facilitating model-driven software development. We argue that two features are important for this purpose: (a) support for explicit meta-representation of programs as an AST-like structure (AST stands for abstract syntax tree) accessible in a programmatic way before and beyond the compilation, and (b) support for user-defined annotations of program elements. That is, we argue for language platforms organized around a Generalized Annotated AST, or GAAST languages for short. We outline the problems with a model-driven development process based on languages without such a support and show how GAAST language technology addresses these problems.

[1]  Shigeru Chiba,et al.  A metaobject protocol for C++ , 1995, OOPSLA.

[2]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[3]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[4]  Aaron Skonnard,et al.  Essential XML Quick Reference: A Programmer's Reference to XML, XPath, XSLT, XML Schema, SOAP, and More , 2001 .

[5]  Axel Uhl,et al.  Model-Driven Architecture , 2002, OOIS Workshops.

[6]  Jeff Prosise Programming Microsoft .NET , 2002 .

[7]  Mira Mezini,et al.  On aspectualizing component models , 2003, Softw. Pract. Exp..

[8]  Donald E. Knuth,et al.  The Genesis of Attribute Grammars , 1990, WAGA.

[9]  David Frankel,et al.  Model Driven Architecture: Applying MDA to Enterprise Computing , 2003 .

[10]  Gail C. Murphy,et al.  Explicit programming , 2002, AOSD '02.

[11]  Shigeru Chiba,et al.  Load-Time Structural Reflection in Java , 2000, ECOOP.

[12]  Walid M. Taha,et al.  Multi-stage programming (poster) , 1997, ICFP '97.

[13]  Martin Odersky,et al.  Implementing Extensible Compilers , 2001 .

[14]  Jonathan Bachrach,et al.  The Java syntactic extender (JSE) , 2001, OOPSLA '01.

[15]  Stuart Dabbs Halloway Component Development for the Java¿ Platform , 2001 .

[16]  Michael Haupt,et al.  Virtual machine support for dynamic join points , 2004, AOSD '04.

[17]  Uwe Aßmann,et al.  Invasive Software Composition , 2003, Springer Berlin Heidelberg.

[18]  Martín Abadi,et al.  Extensible Syntax with Lexical Scoping , 1994 .

[19]  Richard Monson-Haefel,et al.  Enterprise JavaBeans , 1999, Java series.

[20]  PaakkiJukka Attribute grammar paradigmsa high-level methodology in language implementation , 1995 .

[21]  James Newkirk,et al.  How .NET's custom attributes affect design , 2002, IEEE Software.

[22]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[23]  Jukka Paakki,et al.  Attribute grammar paradigms—a high-level methodology in language implementation , 1995, CSUR.

[24]  Colin Atkinson,et al.  The Essence of Multilevel Metamodeling , 2001, UML.

[25]  Adele Goldberg,et al.  SmallTalk 80: The Language , 1989 .

[26]  Walid Taha,et al.  Multi-stage programming (poster) , 1997, ICFP '97.

[27]  Wilson C. Hsieh,et al.  Maya: multiple-dispatch syntax extension in Java , 2002, PLDI '02.

[28]  Jason Hickey,et al.  Phobos: a front-end approach to extensible compilers , 2003, 36th Annual Hawaii International Conference on System Sciences, 2003. Proceedings of the.

[29]  Yannis Smaragdakis,et al.  JTS: tools for implementing domain-specific languages , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).