Model-Driven Engineering
M2 IL, ISTIC, Univ Rennes
"We must constantly turn to new languages in order to express our ideas more effectively. Establishing new languages is a powerful strategy for controlling complexity in engineering design; we can often enhance our ability to deal with a complex problem by adopting a new language that enables us to describe (and hence to think about) the problem in a different way, using primitives, means of combination, and means of abstraction that are particularly well suited to the problem at hand." – Chapter 4: Metalinguistic Abstraction, Structure and Interpretation of Computer Programs by Abelson, Harold, Gerald Jay Sussman, and Julie Sussman
1. Cours
2. TD
- Project presentation
- Metamodel of a FSM (Engineering Modeling Languages – Turning Domain Knowledge into Tools, p. 50)
- Metamodel of Lisp: Section 1 & 2 of The Roots of Lisp by Paul Graham
- Metamodel of Logo
3. TP
- Xtext
- "Chapter 8: An Expression Language" from Implementing Domain-Specific Languages with Xtext and Xtend
- Parsing expressions with Xtext by Sven Efftinge
- Some resources for targeted languages:
4. Videos
- Model Driven Software Engineering - Computerphile
- MDE under the Hood (Model Driven Engineering) - Computerphile
- "How types can turn a SQL interpreter into a SQL compiler" by Tiark Rompf (more)
- Why JSON when you can DSL? – Your problematics deserve their own language
- Domain Specific Languages in Lisp, developing an example using LispWorks
- "Write the Other Half of Your Program" by Jason Hemann and Daniel Friedman
5. Other
- Language Workbenches: The Killer-App for Domain Specific Languages?
- Tutorial: Metacompilers Part 1
- Practical Common Lisp, by Peter Seibel
- PROGRAMMING A PROBLEM-ORIENTED-LANGUAGE, by Charles H. Moore
- The Original 'Lambda Papers' by Guy Steele and Gerald Sussman
- Macros for domain-specific languages
- META II a syntax-oriented compiler writing language
- META-3 syntax-directed compiler writing compiler to generate efficient code