Architectural Metaprogramming
University Of Texas At Austin, Austin TX
Investigators
Abstract
0724979 Don S. Batory University of Texas at Austin Today's programmers wrestle with a bewildering number of languages, tools, programming concepts, and representations. Instinctively we sense familiar ideas are reinvented and reimplemented in different contexts, in different languages, with different implementations, and on different platforms. The result is overwhelming complexity, steep learning curves, and the inability to create customized software cheaply. This research exposes fundamental principles that underlie different threads of research in program development and maintenance to create a general theory of automated software development that ultimately will reduce complexity, be easier to learn, and will enable customized software to be created inexpensively. Architectural Metaprogramming is the idea that programs (or program designs and program structures) are first-class entities that are manipulated by transformations. Programs are values, transformations map programs to other programs, and operators map transformations to transformations. The result is an algebra of programs: programs can be added, subtracted, and transformed. The algebra unifies important areas of software design in a very teachable way: refactorings are behavior-preserving program transformations, feature-based and aspect-oriented software synthesis use behavior-extending program transformations, and model-driven design exploits both to map platform-independent models to platform-specific models. The result of our work is a foundation for a new paradigm, languages, and tools for low-cost automated software design and development. The short-term impact of our work will be in software engineering education, where refactorings, features, aspects, and model-driven design can be presented as a coherent and integrated discipline; the longer-term impact will be on tools and languages in commercial software development.
View original record on NSF Award Search →