Computing Reviews

ESPeciaL: an embedded systems programming language
Métrailler C., Mudry P.  SCALA 2015 (Proceedings of the 6th ACM SIGPLAN Symposium on Scala, Portland, OR, Jun 13, 2015)51-55,2015.Type:Proceedings
Date Reviewed: 07/21/15

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.

The current version of the language is somewhat limited: only a few block types are supported and only acyclic dataflow graphs are allowed. Constrained by these limitations, the sample code shown in the paper is not very exciting. ESPeciaL seems to only reduce some of the boilerplate without any huge reductions in the total code size.

However, I like the general idea, and I believe that ESPeciaL can become quite useful once it is fleshed out more fully. I am pleased that the authors have chosen to open source their work. The project is available on GitHub, and it looks like the authors continue to enhance the project’s features and documentation. As of today--July 14, 2015--there have been 240 project commits, the most recent about a month ago.

Reviewer:  David Goldfarb Review #: CR143633 (1510-0883)

Reproduction in whole or in part without permission is prohibited.   Copyright 2024 ComputingReviews.com™
Terms of Use
| Privacy Policy