SLE 2016
Mon 31 October - Tue 1 November 2016 Amsterdam, Netherlands
co-located with SPLASH 2016
Mon 31 Oct 2016 14:20 - 14:45 at Zürich 2 - Runtime Techniques Chair(s): Julia Lawall

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.