
Extensibility
Didier Verna
DSL Overview
Taxonomy
Extensibility
Example
Internal
External
Conclusion
Discussion
Extensibility at a glance I
[van Deursen et al., 2000, Vasudevan and Tratt, 2011]
User-defined data types and (infix) operators
Algol 68 [Denert et al., 1975, Pagan, 1979]
Operator overloading
C++ [McNamara and Smaragdakis, 2000]
Compile-Time Meta-Programming
C++ templates [Prud’homme, 2006]
Template Haskell, Meta OCaml [Czarnecki et al., 2004]
Meta Lua, Converge, Nermerle [Tratt, 2005,
Fleutot and Tratt, 2007, Skalski et al., 2004]. . .
Functional languages (Haskell, ML)
[Kamin, 1998, Elliott, 1999, Hudak, 1998]
6/32