Print Email Facebook Twitter Code Generation by Model Transformation: A Case Study in Transformation Modularity Title Code Generation by Model Transformation: A Case Study in Transformation Modularity Author Hemel, Z. Kats, L.C.L. Visser, E. Faculty Electrical Engineering, Mathematics and Computer Science Department Software Computer Technology Date 2008-12-31 Abstract Preprint of paper published in: Theory and Practice of Model Transformations (ICMT 2008), Lecture Notes in Computer Science 5063; doi:10.1007/978-3-540-69927-9_13 The realization of model-driven software development requires effective techniques for implementing code generators for domain-specific languages. This paper identifies techniques for improving separation of concerns in the implementation of generators. The core technique is code generation by model transformation, that is, the generation of a structured representation (model) of the target program instead of plain text. This approach enables the transformation of code after generation, which in turn enables the extension of the target language with features that allow better modularity in code generation rules. The technique can also be applied to ‘internal code generation’ for the translation of high-level extensions of a DSL to lower-level constructs within the same DSL using model-to-model transformations. This paper refines our earlier description of code generation by model transformation with an improved architecture for the composition of model-to-model normalization rules, solving the problem of combining type analysis and transformation. Instead of coarse-grained stages that alternate between normalization and type analysis, we have developed a new style of type analysis that can be integrated with normalizing transformations in a fine-grained manner. The normalization strategy has a simple extension interface and integrates non-local, context-sensitive transformation rules. We have applied the techniques in a realistic case study of domain-specific language engineering, i.e. the code generator for WebDSL, using Stratego, a high-level transformation language that integrates model-to-model, model-to-code, and code-to-code transformations. Subject transformationtransformation engineeringterm rewritingwebapplication DSLcombination of analysis and transformation To reference this document use: http://resolver.tudelft.nl/uuid:0b76b7ad-17d7-47f7-8aab-b19207f9577a Publisher Delft University of Technology, Software Engineering Research Group ISSN 1872-5392 Source Technical Report Series TUD-SERG-2008-012 Part of collection Institutional Repository Document type lecture notes Rights (c) 2008 The Author(s)Springer Files PDF TUD-SERG-2008-012.pdf 312.48 KB Close viewer /islandora/object/uuid:0b76b7ad-17d7-47f7-8aab-b19207f9577a/datastream/OBJ/view