
Domain-specific languages specialized to particular application domains
Tailored languages to handle unique challenges
Domain-specific languages, or DSLs, are widely used to enable the modeling of complex systems and not just by software programmers.
DSLs for validation of formal correctness
Where are DSLs used?
Domain-specific languages, or DSLs, are widely used to enable the modeling of complex systems, and not only by software programmers. They can also be extended to generate code from the models created.
The use of a DSL offers a number of advantages:
- Formal notation for a specific purpose or domain that permits and/or forces a precise expression mode
- Validation of formal correctness
- Abstraction of domain concepts to enable a very compact notation
- Strictly formal notation to automate processing or conversion to other formats. Applications of particular interest are:
- Automatic generation of documentation
- Generation of source code in a programming language (e.g., simulation)
- Extraction of derived results
- Alternative representation of selected aspects of application
A key, but less obvious, benefit is the deeper understanding of a domain that the construction of a DSL affords. Such a gain in knowledge is often significantly underestimated.
Examples of domain-specific languages
DSLs that have been and are being developed by PROTOS
Examples of DSLs that have been developed by PROTOS:
- The open source tool eTrice – an implementation of the modeling language ROOM – Real-Time Object Oriented Modeling
- reversiTECT – an analysis tool for looking at the architecture and metrics of an existing code base
- miniHIL – a lightweight test platform for embedded systems
The PROTOS Software team has developed many DSLs for their customers and trained them in the use of Xtext and Xtend and even JetBrains MPS, enabling them create their own DSLs and code generators.
If you’d like to move away from developing software concepts using general-purpose languages or inappropriate tools, contact us using the form below to discover how DSLs can help your development team.