Eating our own dog food: DSLs for generative and transformational engineering
Joint Keynote with SLE
Jim Cordy, School of Computing, Queen's University, Kingston, Ontario, Canada
Languages and systems to support generative and transformational
solutions have been around a long time. Systems such as XVCL, DMS,
ASF+SDF, Stratego and TXL have proven mature, efficient and effective in
a wide range of applications. Even so, adoption remains a serious issue -
almost all successful production applications of these systems in practice
either involve help from the original authors or years of experience to get
rolling. While work on accessibility is active, with efforts such as ETXL,
Stratego XT, Rascal and Colm, the fundamental big step remains - it's not
obvious how to apply a general purpose transformational system to any
given generation or transformation problem, and the real power is in the
paradigms of use, not the languages themselves.
In this talk I will propose an agenda for addressing this problem by taking
our own advice - designing and implementing domain specific languages
(DSLs) for specific generative, transformational and analysis problem domains.
We widely advise end users of the need for DSLs for their kinds of problems -
why not for our kinds? And we use our tools for implementing their DSLs -
why not our own? I will outline a general method for using transformational
techniques to implement transformational and generative DSLs, and
review applications of the method to implementing example text-based DSLs
for model-based code generation and static code analysis. Finally, I will
outline some first steps in implementing model transformation DSLs using
the same idea - retaining the maturity and efficiency of our existing tools
while bringing them to the masses by "eating our own dogfood".
Download slides pdf?