Language Design¶
This page contains many links to articles about language design with MPS and some other topics. If links are missing, please raise an issue.
Patterns¶
- Inline Definitions ⧉ (Specific Languages' blog)
- Escape hatch ⧉ (Specific Languages' blog)
- Another form of escape hatch ⧉ (Specific Languages' blog)
- Externalized names ⧉ (Specific Languages' blog)
- Empty lines ⧉ (Specific Languages' blog)
- Externalized names (and other common attributes) ⧉ (F1RE's blog)
- Multiple generators for same language ⧉) (F1RE's blog)
- High-Level Structure of DSLs: Three Patterns ⧉) (Markus Voelter's blog)
General¶
- On language design ⧉ (Specific Languages' blog)
- My DSL development process ⧉ (Specific Languages' blog)
- Evolving your language gracefully ⧉ (Specific Languages' blog)
- Making distinctions ⧉ (Specific Languages' blog)
- DSLs vs. business rules ⧉ (Specific Languages' blog)
- The Philosophy Behind Language Engineering with MPS ⧉ (Markus Voelter's blog)
- Thoughts on Declarativeness ⧉ (Markus Voelter's blog)
- Why an Agile Process is not Enough ⧉ (languageengineering.io's blog)
- What makes a good Business DSL ⧉ (languageengineering.io's blog)
- What Goes into Language Design … Beyond the Domain ⧉ (languageengineering.io's blog)
- Categorizing the Complexities in Programming ⧉ (languageengineering.io's blog)
- Fusing Modeling and Programming into Language-Oriented Programming ⧉ (Markus Voelter's blog)
- Context Boundaries in Language Engineering Projects ⧉ (log verbose's blog)
- Why documents shouldn't be the basis of domain analysis ⧉ (Markus Voelter's blog)
- When is something a (domain-specific) language? ⧉ (Markus Voelter's blog)
- What is Model Driven Engineering ⧉ (F1RE's blog)
- Domain-driven design vs. language engineering ⧉ (Specific Languages' blog)
Introducing DSLs¶
- Why it is so hard to change established processes in organizations ⧉ (Markus Voelter's blog)
- Introducing a tool successfully ⧉ (Markus Voelter's blog)
- The minimum infrastructure for running languages and models ⧉ (Markus Voelter's blog)
- Why I emphasize DSLs for Domain Experts ⧉ (Markus Voelter's blog)
- The split brain of DSLs ⧉ (Markus Voelter's blog)
- How to run a technical workshop ⧉
Perspectives on DSL¶
- Knowledge Management ⧉ (Markus Voelter's blog)
- Production Knowledge ⧉ (Markus Voelter's blog)
- Software Architecture ⧉ (Markus Voelter's blog)
- Software Quality ⧉ (Markus Voelter's blog)
Comparisons¶
- DSLs vs. "Learning Languages" ⧉ (Markus Voelter's blog)
- Low Code or Domain-Specific Languages? ⧉ (log verbose's blog)
- Tool Lock-in vs. Semantic Lock-in ⧉ (Markus Voelter's blog)
Fachlichkeit¶
- An Argument for the Isolation of "Fachlichkeit" ⧉ (Markus Voelter's blog)
- The Hidden Complexities in Fachlichkeit ⧉ (Markus Voelter's blog)
- The hidden layer between the Fachlichkeit and the -ilities ⧉ (Markus Voelter's blog)
Programming¶
- Teaching the Basics of Programming to Domain Experts ⧉ (Markus Voelter's blog)
- Thinking vs. Coding ⧉ (Markus Voelter's blog)
- ProgrammingBasics - How to think like a programmer ⧉
Safety¶
- Safety and Security from a Language Engineering Perspective ⧉ (languageengineering.io's blog)
- Testing Languages, Generators and Runtimes in a Safety-Critical System ⧉ (Markus Voelter's blog)
- Using Language Workbenches and Domain-Specific Languages for Safety-Critical Software Development (Markus Voelter's blog)
Formal Methods¶
- An Overview of Program Analysis Using Formal Methods ⧉
- Thoughts on Formal Verification and DSLs ⧉ (Markus Voelter's blog)
- Thoughts on X-by-Construction ⧉ (Markus Voelter's blog)
Z3 Theorem Prover¶
- Programming Z3 (tutorial) ⧉
- Program verification with Z3 (course slides) ⧉
- JavaSMT ⧉
- Z3Py Guide ⧉
- SMT-Lib ⧉