WebDSL

A Case Study in Domain-Specific Language Engineering

Lecture Notes (2008)
Author(s)

E. Visser

Contributor(s)

Copyright
© 2008 The Author(s)
More Info
expand_more
Publication Year
2008
Copyright
© 2008 The Author(s)
Related content
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

Preprint of paper published in: GITTSE 2007 - International Summer School Generative and Transformational Techniques in Software Engineering, 2-7 July 2007, Lecture Notes in Computer Science 5235; doi:10.1007/978-3-540-88643-3_7 The goal of domain-specific languages (DSLs) is to increase the productivity of software engineers by abstracting from low-level boilerplate code. Introduction of DSLs in the software development process requires a smooth workflow for the production of DSLs themselves. This requires technology for designing and implementing DSLs, but also a methodology for using that technology. That is, a collection of guidelines, design patterns, and reusable DSL components that show developers how to tackle common language design and implementation issues. This paper presents a case study in domain-specific language engineering. It reports on a project in which the author designed and built WebDSL, a DSL for web applications with a rich data model, using several DSLs for DSL engineering: SDF for syntax definition and Stratego/XT for code generation. The paper follows the stages in the development of the DSL. The contributions of the paper are three-fold. (1) A tutorial in the application of the specific SDF and Stratego/XT technology for building DSLs. (2) A description of an incremental DSL development process. (3) A domain-specific language for web-applications with rich data models. The paper concludes with a survey of related approaches.

Files

TUD-SERG-2008-023.pdf
(pdf | 0.783 Mb)
License info not available