TY - GEN
T1 - Object-oriented design pattern for DSL program monitoring
AU - Drey, Zoé
AU - Teodorov, Ciprian
PY - 2016/10/20
Y1 - 2016/10/20
N2 - To ease domain-specific language (DSL) development, a range of language workbenches have been created, which provide language design facilities and programming tools, like editors and validators. In spite of these developments, there is a perceived lack of tool support for execution monitoring, which is the basic block for program validation and maintenance. To partially address this issue some language workbenches offer ad-hoc solutions for DSL debugging, but lack support for other monitoring features. In the literature, a number of domain-specific monitoring tools have been proposed. However, there is no clear way for integrating these developments in existing language workbenches. This paper presents ten requirements needed for creating a modular and composable DSL monitoring infrastructure and proposes an object-oriented design pattern for DSL program monitoring. This pattern provides a practical answer to the problem of interfacing the runtime of a DSL with concrete domain-specific monitoring tools. To show the practicability of our approach, we add monitoring support to a simple lambda calculus, without changing the standard interpreter. The ease of integrating monitoring tools is shown through the development of a tracer and the integration of an off-The-shelf domain-specific profiler.
AB - To ease domain-specific language (DSL) development, a range of language workbenches have been created, which provide language design facilities and programming tools, like editors and validators. In spite of these developments, there is a perceived lack of tool support for execution monitoring, which is the basic block for program validation and maintenance. To partially address this issue some language workbenches offer ad-hoc solutions for DSL debugging, but lack support for other monitoring features. In the literature, a number of domain-specific monitoring tools have been proposed. However, there is no clear way for integrating these developments in existing language workbenches. This paper presents ten requirements needed for creating a modular and composable DSL monitoring infrastructure and proposes an object-oriented design pattern for DSL program monitoring. This pattern provides a practical answer to the problem of interfacing the runtime of a DSL with concrete domain-specific monitoring tools. To show the practicability of our approach, we add monitoring support to a simple lambda calculus, without changing the standard interpreter. The ease of integrating monitoring tools is shown through the development of a tracer and the integration of an off-The-shelf domain-specific profiler.
KW - Domain-specific language
KW - Execution monitoring
KW - Language workbench
UR - https://www.scopus.com/pages/publications/85006716689
U2 - 10.1145/2997364.2997373
DO - 10.1145/2997364.2997373
M3 - Conference contribution
AN - SCOPUS:85006716689
T3 - SLE 2016 - Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering, co-located with SPLASH 2016
SP - 70
EP - 83
BT - SLE 2016 - Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering, co-located with SPLASH 2016
A2 - Varro, Daniel
A2 - Varro, Daniel
A2 - Balland, Emilie
A2 - van der Storm, Tijs
PB - Association for Computing Machinery, Inc
T2 - 9th ACM SIGPLAN International Conference on Software Language Engineering, SLE 2016
Y2 - 31 October 2016 through 1 November 2016
ER -