Language Workbench Challenge 2012
The 2nd Language Workbench Challenge will be held on 27th March in Cambridge, UK. The purpose of this challenge was to faciliate the exchange of ideas between various groups building Domain-Specific Language (DSL) development tools. Our language workbench, Ensō, will be showcased together with nine other tools from both academic and commercial organizations.
The challenge component of LWC2012 is to design and implement a language for controlling a central water heating system. There are two main parts to the assignment: 1) a controller language that sends out low-level instructions to the heating and piping system, and 2) a piping simulator that can mimic a real heating system for offline testing. A boiler example described in the challenge consists of a boiler and a radiator connected in parallel to a pump and heater. The pump pushes hot water to a valve, which is then channelled by a valve either towards just boiler or radiator or both.
For this challenge, we implemented a piping and instrumentation diagram system, comprising a piping language and a controller language. Each language has a model specification with textual and graphical editors. The submission can be obtained from our GitHub repository.