Abstract

In the context of model-driven engineering, the dynamic (execution) semantics of domain-specific languages (DSLs) is usually not specified explicitly and stays (hard)coded in model transformations and code generation. This poses challenges such as learning, debugging, understanding, maintaining, and updating a DSL. Facing the lack of supporting tools for specifying the dynamic semantics of DSLs (or programming languages in general), we propose to specify the architecture and the detailed design of the software that implements the DSL, rather than requirements for the behavior expected from DSL programs. To compose such a specification, we use specification templates that capture software design solutions typical for the (application) domain of the DSL. As a result, on the one hand, our approach allows for an explicit and clear definition of the dynamic semantics of a DSL, supports separation of concerns and reuse of typical design solutions. On the other hand, we do not introduce (yet another) specification formalism, but we base our approach on an existing formalism and apply its extensive tool support for verification and validation to the dynamic semantics of a DSL.

Highlights

  • Introduction and motivationA domain-specific language (DSL) is a computer language specialized for a specific domain

  • Robotic Arm Sequential tions; – We can verify that the prototyped DSL fulfills certain properties by analyzing the generated Event-B specifications using provers and/or model checkers of Rodin; – We can validate the prototyped DSL implementation against requirements by executing the generated Event-B specifications; – We can wrap the animation of the generated EventB specifications in a domain-specific visualization

  • To mitigate the potential difficulties of employing two different languages (Constelle and the back-end formalism), we rely on techniques that allow for optimizing the verification of the resulting EventB specification by reusing proof obligations that are already discharged for the invoked specification templates

Read more

Summary

Introduction

Introduction and motivationA domain-specific language (DSL) is a computer language specialized for a specific (application) domain. A DSL captures domain knowledge, which supports its reuse via domain notions and notation and raises the abstraction level of solving problems in a particular domain. The implementation of the DSL (such as its translation to the source code, or via interpretation) captures software solutions (algorithms, architecture, and techniques) that are commonly used in the domain, which supports their reuse and, raises the efficiency of the software development process. In this way, the DSL realizes a so-called horizontal domain [24]

Objectives
Methods
Results
Conclusion

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.