WG211/M10Vinju
Separation and integration of concerns in meta programming; the Rascal perspective. by Jurgen Vinju
In Software Design we focus on separation of concerns as an ultimate goal. Source code generation is an aspect of meta programming that is often and easily separated in a stage: the "back-end". Very often a separate meta formalism, such as a template language, is used for this. In this talk we take the opposite position and argue the benefits of allowing templates to be integrated intimately with program analysis, program transformation and program visualization concerns. Enabling such integration is an explicit design decision of the Rascal meta programming language. It allows cross fertilization between different aspects of meta programming and down scaling (keeping things simple). We will illustrate the pros and cons using small code examples.