Building code generators with genesys: A tutorial introduction

Sven Jörges, Bernhard Steffen, Tiziana Margaria

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Automatic code generation is a key feature of model-driven approaches to software engineering. In previous publications on this topic, we showed that constructing code generators in a model-driven way provides a lot of advantages. We presented Genesys, a code generation framework which supports the model-driven construction of code generators based on service-oriented principles. With this methodology, concepts like bootstrapping and reuse of existing components enable a fast evolution of the code generation library. Furthermore, the robustness of the code generators profits from the application of formal methods. In this paper, we will show in detail how code generators are constructed with Genesys, in a tutorial-like fashion. As an example, we will build a code generator for HTML documentation from scratch.

Original languageEnglish
Title of host publicationGenerative and Transformational Techniques in Software Engineering III - International Summer School, GTTSE 2009, Revised Papers
Pages364-385
Number of pages22
DOIs
Publication statusPublished - 2011
Externally publishedYes
Event3rd International Summer School on Generative and Transformational Techniques in Software Engineering, GTTSE 2009 - Braga, Portugal
Duration: 6 Jul 200911 Jul 2009

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume6491 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

Conference3rd International Summer School on Generative and Transformational Techniques in Software Engineering, GTTSE 2009
Country/TerritoryPortugal
CityBraga
Period6/07/0911/07/09

Fingerprint

Dive into the research topics of 'Building code generators with genesys: A tutorial introduction'. Together they form a unique fingerprint.

Cite this