2008
DOI: 10.1007/978-3-540-88643-3_11
|View full text |Cite
|
Sign up to set email alerts
|

Evolving a DSL Implementation

Abstract: Abstract. Domain Specific Languages (DSLs) are small languages designed for use in a specific domain. DSLs typically evolve quite radically throughout their lifetime, but current DSL implementation approaches are often clumsy in the face of such evolution. In this paper I present a case study of an DSL evolving in its syntax, semantics, and robustness, implemented in the Converge language. This shows how real-world DSL implementations can evolve along with changing requirements.

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
4
0

Year Published

2010
2010
2021
2021

Publication Types

Select...
3
1

Relationship

0
4

Authors

Journals

citations
Cited by 4 publications
(4 citation statements)
references
References 14 publications
(29 reference statements)
0
4
0
Order By: Relevance
“…This section shows a simple but complete usage example of Neverlang. The example is the same state machine DSL in [49]. Just like in Tratt's paper, the DSL will be evolved through extension; but, in our case, we will show that the same kind of language extension can be achieved in Neverlang using language components.…”
Section: Case Study: Evolution Of a Dsl Through Compositionmentioning
confidence: 90%
“…This section shows a simple but complete usage example of Neverlang. The example is the same state machine DSL in [49]. Just like in Tratt's paper, the DSL will be evolved through extension; but, in our case, we will show that the same kind of language extension can be achieved in Neverlang using language components.…”
Section: Case Study: Evolution Of a Dsl Through Compositionmentioning
confidence: 90%
“…We will take the state machine DSL and evolve it by plugging in a new feature, borrowing part of its implementation from a distinct language: we will substitute the simple transitions of the running example with an alternative implementation, with support for guards and actions. This example is an adaptation from [25], but, in contrast to this work, in our case the language for guards and actions is implemented as a standalone language. We want to show that using our approach, it is easy to plug the trait-based implementation of the syntax and the semantics of this separate language into the initial state machine language, and to substitute part of the original implementation with new components.…”
Section: Case Studymentioning
confidence: 99%
“…As our running example we will use a simple State Machine language similar to the one from Tratt's paper [25] (see Listing 2). Similarly to Tratt, we will also show how to extend the basic state machine DSL with guards and action language; but in our case the extended DSL will be the result of composing together traits from the basic state machine language and a separate action language.…”
Section: Introductionmentioning
confidence: 99%
“…Frag is the only approach that supports both approaches. Converge's approach [Tra08a,Tra08b] is to provide DSL blocks that contain DSL code. Hence, Converge combines embedded or external DSLs, too.…”
Section: Related Work On Dsl Toolkitsmentioning
confidence: 99%