An examination of DSLs for concisely representing model traversals and transformations
- 1 January 2003
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
Abstract
A key advantage for the use of a domain-specific language (DSL) is the leverage that can be captured from a concise representation of a programmer's intention. This paper reports on three different DSLs that were developed for two different projects. Two of the DSLs assisted in the specification of various modeling tool ontologies, and the integration of models across these tools. On another project, a different DSL has been applied as a language to assist in aspect-oriented modeling. Each of these three languages was converted to C++ using different code generators. These DSLs were concerned with issues of traversing a model and performing transformations. The paper also provides quantitative data on the relative sizes of the intention (as expressed in the DSL) and the generated C++ code. Observations are made regarding the nature of the benefits and the manner in which the conciseness of the DSL is best leveraged.Keywords
This publication has 15 references indexed in Scilit:
- Component generation technology for semantic tool integrationPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Composing domain-specific design environmentsComputer, 2001
- Getting started with ASPECTJCommunications of the ACM, 2001
- Aspect-oriented programming with adaptive methodsCommunications of the ACM, 2001
- A language for specifying recursive traversals of object structuresPublished by Association for Computing Machinery (ACM) ,1999
- A perspective of generative reuseComputational Geosciences, 1998
- Challenges in Integrating Biological Data SourcesJournal of Computational Biology, 1995
- Reengineering a complex application using a scalable data structure compilerPublished by Association for Computing Machinery (ACM) ,1994
- The realizable benefits of a language prototyping languageIEEE Transactions on Software Engineering, 1988
- Programming pearlsCommunications of the ACM, 1986