• Home
  • DSLs: definition, implementation, design concerns
    • Zoo of domain-specific languages
    • DSLs: what, why, how
    • Fluent interfaces
    • External domain-specific languages
    • Implementing DSLs in practice
    • Language Workbenches
    • Design dimensions of DSLs
    • Design concerns for concrete syntax
    • DSL development
    • Worst practices
  • Tutorial on Xtext and Xtend
    • Xtext: writing a grammar
    • Xtext: Eclipse Modeling Framework
    • Xtend Programming Language
    • Xtext: validation, quickfixes, custom formatting
    • Xtext: type checking and scoping
    • Xtext: code generation
    • Cheat sheet on Xtext Grammar Language
    • Cheat sheet on Xtend
  • Projectional editing and tutorial on JetBrains MPS
    • Projectional editing
    • JetBrains MPS: Structure Aspect
    • JetBrains MPS: Editor Aspect
    • JetBrains MPS: Typesystem Aspect
    • JetBrains MPS: code generation
  • Useful links
  • UTU 2020 (Moodle)
  • MODELS 2020
  • ABZ 2020 → 2021
  • FM 2021
  • About
  • Home
  • DSLs: definition, implementation, design concerns
    • Zoo of domain-specific languages
    • DSLs: what, why, how
    • Fluent interfaces
    • External domain-specific languages
    • Implementing DSLs in practice
    • Language Workbenches
    • Design dimensions of DSLs
    • Design concerns for concrete syntax
    • DSL development
    • Worst practices
  • Tutorial on Xtext and Xtend
    • Xtext: writing a grammar
    • Xtext: Eclipse Modeling Framework
    • Xtend Programming Language
    • Xtext: validation, quickfixes, custom formatting
    • Xtext: type checking and scoping
    • Xtext: code generation
    • Cheat sheet on Xtext Grammar Language
    • Cheat sheet on Xtend
  • Projectional editing and tutorial on JetBrains MPS
    • Projectional editing
    • JetBrains MPS: Structure Aspect
    • JetBrains MPS: Editor Aspect
    • JetBrains MPS: Typesystem Aspect
    • JetBrains MPS: code generation
  • Useful links
  • UTU 2020 (Moodle)
  • MODELS 2020
  • ABZ 2020 → 2021
  • FM 2021
  • About

Domain-specific languages

Follow @mikhail_barash

Design dimensions of DSLs

In this part, we discuss design dimensions of DSLs. We discuss how
– expressivity
– linguistic abstraction
– platform influence
– coverage
– static semantics
play role in designing domain-specific languages.


List of sources for images in slides
– http://4.bp.blogspot.com/_p2bt7R1kJpo/TSRRIMMJ-6I/AAAAAAAAAwI/gc_DDsoipcE/s1600/dectab.png

Remarks

This part is based on Chapter 4 of M. Voelter’s book DSL Engineering.

Additional materials

  • G. Karsai, H. Krahn, C. Pinkernell, B. Rumpe, M. Schindler, S. Völkel: Design guidelines for domain-specific languages
  • F. P. Brooks: Language design as design
  • M. Mernik, J. Heering, A. Sloane: When and how to develop domain-specific languages
  • D. Spinellis: Notable design patterns for domain-specific languages
  • D. Wile: Lessons learned from real DSL experiments
  • A different view on Functional Programming
  • F. J. Ros: A criticism of Ruby
  • Safe-dereference operator ?. in Groovy
Cheat sheet on Xtext

Cheat sheet on Xtend

A tale about domain-specific languages

Introductory article about JetBrains MPS

ABC of JetBrains MPS

Book on MPS (in progress)

Useful links

GitHub

Feedback in social media

Get in touch

Copyright © 2023 · All Rights Reserved · Domain-specific languages · Portfolio Theme Lite by Organic Themes

  • Advanced topics
  • Domänenspezifische Programmiersprachen – auf Deutsch