Eating our own dog food: DSLs for generative and transformational engineering
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”.
Speaker: Jim Cordy is Professor and past Director of the School of Computing and Professor of Electrical & Computer Engineering at Queen’s University, Kingston, Ontario, Canada. From 1995 to 2000 he was vice president and chief research scientist at Legasys Corporation, a software technology company specializing in legacy software system analysis and renovation.
Prof. Cordy is the author or co-author of numerous contributions in computer software systems, including the PL/I subset compiler SP/k (1977), the Toronto Euclid compiler (1980), the S/SL compiler technology (1980), the Concurrent Euclid programming language (1981), the Turing programming language (1983), the orthogonal code generation compiler technology (1986), the TXL source transformation language (1991), the LS/2000 year 2000 conversion system (1996), and the LS/AMT software analysis and migration system (1999). Dr. Cordy has served as program chair of numerous international conferences, workshops and special issues in programming languages and software engineering. He is an ACM distinguished scientist, an IBM visiting scientist and faculty fellow, a senior member of the IEEE and a registered professional engineer.
If Model Driven Engineering is the Solution, then What is the Problem?
For nearly ten years soon, modern forms of software modeling have been used in various contexts with good apparent success. This is a convenient time to retrospect to what has been achieved, where we stand now and where we are leading to with Model Driven Engineering (MDE). If there is apparently some consensual agreement on the core mechanisms, it is much more difficult to delimitate the scope of applicability of MDE. After describing these consensual core mechanisms, the presentation will look at some applicative problems that have been solved with MDE, some that are being solved and many more that remains to be solved. Surprisingly we find quite a broad spectrum of possibilities like code generation from models and model extraction from code, but going much beyond. In addition to development-time models, maintenance-time and execution-time models are more and more frequently used. The catalogue of MDE applications follows a richer classification of models and of operations on these models. In this perspective important trends are being noted, as the consideration of models of data aside models of code or the increasing use of transformation and matching operations that seems to identify complex system management and interoperability handling among future major application targets of MDE.
Speaker: Jean Bézivin is professor of Computer Science at the University of Nantes, France. He presently leads at Ecole des Mines de Nantes the AtlanMod INRIA research team. He got a Master degree from the University of Grenoble and a Ph.D. from the University of Rennes. Since 1980 he has been very active in Europe in the object-oriented community, starting the ECOOP series of conference, the TOOLS series of conferences, and more recently the MODELS and the ICMT series of conferences. He founded in 1979, at the University of Nantes, one of the first Master programs in Software Engineering entirely devoted to Object Technology (Data Bases, Concurrency, Languages and Programming, Analysis and Design, etc.). His present research interests include model engineering and more especially the techniques of model transformation applied to data engineering and to software forward and reverse engineering. He has published many papers and organized tutorials and workshops in the domains of concurrency, simulation, object-oriented programming, and model-driven engineering. On the subjects of model driven engineering and MDA™, he has been leading the OFTA industrial group in France, co-animating a CNRS specific action and the Dagstuhl seminar #04101. He is a member of the ECOOP, MODELS, TOOLS and ICMT steering committees. He was co-chair of ECOOP’2006 and PC chair of TOOLS’2007.