원문정보
초록
영어
This paper presents a new domain-specific language (DSL) and its interpreter. The purpose of the language is to be a tool for software developers and administrators that allows them to easily specify how configuration files in INI format should look like and what rules should their contents comply with. The interpreter of the language then takes a specification of a configuration file written in the DSL and verifies whether configuration files given as an input match the specification. The requirement for the language emerged at CERN (European Organization for Nuclear Research). The reason is that CERN, one of the biggest research organizations in the world, heavily uses SCADA (Supervisory Control and Data Acquisition) software for their industrial and scientific machines and SCADA developers needed to be able to verify that configuration files used by CERN's SCADA (WinCC Open Architecture) software are correct and comply with CERN standards. The newly designed DSL is primarily based on declarative paradigm and its core capabilities can be extended by JavaScript code injection. The language syntax is also a superset of INI files syntax so it feels familiar to people who want to use it for simple verification use cases. As for the interpreter, it uses Xtext-based parser to create abstract syntax trees and to integrate with the Eclipse Platform. The execution of the DSL code then uses a hybrid architecture which combines AST interpretation, translation of certain parts of AST into a JavaScript code and running JavaScript code on top of the Java Virtual Machine.
목차
1. Introduction
2. Configuration Files
3. Template Language Design
3.1. Basic Concepts of the DSL
4. Template Language Parser
4.1. Xtext-based Barser
4.2. Nashorn Engine Parser
5. Template Language Interpreter
5.1. AST Interpretation
5.2. JavaScript Engine and JVM Execution
6. Conclusions
References
