Groovy as Domain-specific Language (DSL) in Software Interlock System

Józef Woźniak, Grzegorz Kruk, M.Polnik · 2013

After over 7 years in operation the Software Interlock System (SIS) has become an indispensable and missioncritical controls tool covering many operational areas from general machine protection to diagnostics. The growing number of running instances as much as the size of existing configurations have increased both the complexity and maintenance cost of running the SIS infrastructure. In response to those issues, new ways of configuring the system have been investigated aiming at simplifying the configuration process by making it faster, more user friendly and understandable for wider audiences and domain experts alike. As one of the possible choices the Groovy scripting language has been considered as being particularly well suited for writing a custom Domain-Specific Language (DSL) due to its builtin language features like native syntax constructs, command chain expressions, hierarchical structures with builders, closures or Abstract Syntax Tree (AST) transformations. This document explains best practices and lessons learned while introducing an accelerator physics domain oriented DSL language for the configuration of the Software Interlock System developed by the Data & Application Section at CERN.

Read the paper · More papers on PaperTik