Automation programming is typically done using blocks and dataflow connections, in diagram languages that support userdefined block types. Often, these types are intended to be instantiated and connected to other blocks in common patterns, corresponding to anticipated variability. We present the new language mechanisms of wirings and recommendations that allow these intentions to be encoded as features in libraries. A wiring describes how a given block is typically connected to other blocks, and a recommendation describes where such a wiring is typically applied as a feature. This allows feature-based wizards to be generated for user-defined libraries, making it easy to construct applications that make use of the encoded patterns.
Reference attribute grammars (RAGs) is a powerful formalism for developing modular extensible compilers and program analysis tools. This paper presents JavaRAG, an implementation of RAGs as a Java library that is independent of the abstract syntax tree structure. This makes it possible to extend legacy compilers implemented in Java with RAG computations. We have evaluated the approach by integrating with EMF, ANTLR, and hand-built abstract syntax trees, and we compare performance and specification size with JastAdd and Kiama which are other RAG-based tools. Our JavaRAG library is open source and is used in a compiler for the dataflow language CAL.
In this paper, we describe how we generate Functional Mock-up Units (FMUs) for the automation block language Bloqqi. This allows Bloqqi control programs to be tested with simulations of the physical processes they control. The physical process can be specified in any tool that supports the Functional Mockup-Interface (FMI) standard. For example, we have successfully run Bloqqi programs together with Modelica models exported as FMUs. Bloqqi programs execute at discrete times, and we describe how this is handled in the implementation of the DoStep function, specified in the standard.The Functional Mock-up Interface (FMI) is a toolindependent standard with support for both model exchange and co-simulation of dynamic models (Blochwitz et al., 2012). Version 1.0 of the standard was released in 2010, followed by version 2.0 in 2014. Using the FMI standard, models can be shared across all the 100+ tools that are currently supporting the standard. FMI uses a combination of XML-files and compiled C-code to create a Functional Mock-up Unit (FMU). An FMU is a zipfile with two major parts: a model description in XMLformat, and a number of compiled binaries. Each FMU
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.