language features by modifying, extending the em-
bedded language and, once the extensions are proved
to be useful and are stable enough, add them to the
standalone language.
On the other hand, this comes at a cost: The con-
sistency of the embedded and standalone language
front-ends have to be maintained. Whenever slight
changes are done in the internal representation, the
embedded language front-end has to be adapted. We
still do not know if this cost overwhelms the advan-
tage that the embedded language offers for the lan-
guage design.
Furthermore, since the standalone syntax is more
convenient than the embedded language front-end, it
might not be appealing to experiment with new lan-
guage concepts in the embedded language. It also
takes more effort to keep in mind two different vari-
ants of the same language.
Even if it turns out that it is not worth maintain-
ing the embedded language front-end and it gets re-
moved from the compiler one day, its important pos-
itive role in the design of the first language version is
indisputable.
6 SUMMARY AND
ACKNOWLEDGEMENTS
This paper evaluates a language development method-
ology that starts the design and implementation with
an embedded language, then defines concrete syntax
and implements support for it. The main advantage of
the method is the flexibility provided by the embed-
ded language combined by the advantages of a stan-
dalone language. We have demonstrated that most of
the embedded language implementation can be reused
for the standalone compiler.
We would like to thank the support of Ericsson
Hungary and the grant EITKIC 12-1-2012-0001 that
is supported by the Hungarian Government, managed
by the National Development Agency, and financed
by the Research and Technology Innovation Fund.
REFERENCES
Axelsson, E., Claessen, K., D
´
evai, G., Horv
´
ath, Z., Keijzer,
K., Persson, A., Sheeran, M., Svenningsson, J., Vajda,
A., and et al. (2010). Feldspar: A domain specific
language for digital signal processing algorithms. In
IN: Proc. 8th ACM/IEEE International Conference on
Formal Methods and Models for Codesign. IEEE.
Bierhoff, K., Liongosari, E. S., and Swaminathan, K. S.
(2006). Incremental development of a domain-specific
language that supports multiple application styles. In
OOPSLA 6th Workshop on Domain Specific Model-
ing, pages 67–78.
Bravenboer, M., Groot, R. D., and Visser, E. (2005).
Metaborg in action: Examples of domain-specific lan-
guage embedding and assimilation using stratego/xt.
In In Participants Proceedings of the Summer School
on Generative and Transformational Techniques in
Software Engineering (GTTSE05. Springer Verlag.
Bravenboer, M. and Visser, E. (2004). Concrete syn-
tax for objects: domain-specific language embedding
and assimilation without restrictions. SIGPLAN Not.,
39(10):365–383.
Cleenewerck, T. (2003). Component-based dsl develop-
ment. In In Proceedings of GPCE03 Conference, Lec-
ture Notes in Computer Science 2830, pages 245–264.
Springer-Verlag.
Cunningham, H. C. (2008). A little language for surveys:
constructing an internal dsl in ruby. In Proceedings
of the 46th Annual Southeast Regional Conference on
XX, ACM-SE 46, pages 282–287, New York, NY,
USA. ACM.
Czarnecki, K., O’Donnell, J. T., Striegnitz, J., and Taha, W.
(2003). Dsl implementation in metaocaml, template
haskell, and c++. In Domain-Specific Program Gen-
eration, pages 51–72.
D
´
evai, G., Tejfel, M., Gera, Z., P
´
ali, G., Nagy, G., Horv
´
ath,
Z., Axelsson, E., Sheeran, M., Vajda, A., Lyckeg
˚
ard,
B., and Persson, A. (2010). Efficient code gener-
ation from the high-level domain-specific language
Feldspar for DSPs. In ODES-8: 8th Workshop on Op-
timizations for DSP and Embedded Systems.
Freeman, S. and Pryce, N. (2006). Evolving an Embedded
Domain-Specific Language in Java. In Companion
to the 21st ACM SIGPLAN Conference. OOPSLA’06,
pages 855–865, Portland, Oregon, USA.
Leijen, D. and Meijer, E. (2001). Parsec: Direct style
monadic parser combinators for the real world. Elec-
tronic Notes in Theoretical Computer Science, 41(1).
Sloane, A. M. (2009). Experiences with Domain-Specific
Language Embedding in Scala.
Spinellis, D. (2001). Notable design patterns for domain-
specific languages. J. Syst. Softw., 56(1):91–99.
Wadler, P. (1992). Wadler’s ”Law” on lan-
guage design. Haskell mailing list,
http://code.haskell.org/˜dons/haskell-1990-
2000/msg00737.html.
Wile, D. (2004). Lessons learned from real dsl experiments.
Sci. Comput. Program., 51(3):265–290.
Zdun, U. (2010). A dsl toolkit for deferring architectural
decisions in dsl-based software design. Information
and Software Technology, Vol.52(No. 7):733–748.
ICSOFT2013-8thInternationalJointConferenceonSoftwareTechnologies
250