Author: Polnik, M.
Paper Title Page
MOPPC142 Groovy as Domain-specific Language (DSL) in Software Interlock System 443
 
  • J.P. Wozniak, G. Kruk, M. Polnik
    CERN, Geneva, Switzerland
 
  The SIS, in operation since over 7 years, is a mission-critical component of the CERN accelerator control system, covering areas from general machine protection to diagnostics. The growing number of instances and the size of the existing installations have increased both the complexity and maintenance cost of running the SIS infrastructure. Also the domain experts have considered the XML and Java mixture for configuration as difficult and suitable only for software engineers. To address these issues, new ways of configuring the system have been investigated aiming at simplifying the process by making it faster, more user-friendly and adapted for a wider audience. From all the existing DSL choices (fluent Java APIs, external/internal DSLs), the Groovy scripting language has been considered as being particularly well suited for writing a custom DSL due to its built-in language features: Java compatibility, native syntax constructs, command chain expressions, hierarchical structures with builders, closures or AST transformations. This paper explains best practices and lessons learned while building the accelerators domain-oriented DSL for the configuration of the interlock system.  
poster icon Poster MOPPC142 [0.510 MB]