This paper describes ESPeciaL, a domain-specific language designed to make it easier to write programs for programmable embedded systems such as Arduino. ESPeciaL is a dataflow language, implemented in Scala, which generates C++ code ready to run on the target system. ESPeciaL is programmed in terms of "blocks," representing hardware modules such as micro-controller peripherals, general-purpose input/output (GPIO) pins, and program functions (such as multiplexers (MUXs) and gates). Each such block has typed I/O ports; the dataflow language is used to represent connections between ports.
展开▼