40 likes | 174 Views
DSLs: The Good, the Bad, and the Ugly. Marjan Mernik University of Maribor Faculty of Electrical Engineering and Computer Science. Background. DSL research Identifying patterns in DSL development Comparison of DSL implementation approaches Incremental DSL development
E N D
DSLs: The Good, the Bad, and the Ugly Marjan Mernik University of Maribor Faculty of Electrical Engineering and Computer Science
Background • DSL research • Identifying patterns in DSL development • Comparison of DSL implementation approaches • Incremental DSL development • Automatic generation of DSL tools (editors, debuggers, test engines) • Alternative approaches to Domain Analysis for DSLs (grammatical inference, API2DSL, Ontologies) • DSL practice • LISA, PPCEA, BackupSpec, ...
The Good • A DSL is a computer language (specification, modeling, programming) tailored to a particular domain. But, what is a domain? • DSL examples: BNF, ProcGraph, Sawzall • Gains in expressiveness and ease of use (the future is end-user programming) • Gains in productivity • Reduced maintenance costs • Possibility for AVOPT
The Bad and The Ugly 1. Cost-benefit analysis for a particular domain is hard to perform. Is it worth the effort to develop a DSL? 2. Lack of proper tool support. Just building a DSL compiler/interpreter is not enough! 4. Poor interoperability with other languages. 6. Instability of DSL design. 8. Lack of proper semantic definition of DSLs. 9. Poor documentation and training. 10. Limited knowledge and expertise on how to perform domain analysis.