Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
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: Jul 21 2015

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)
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Microprogram Design Aids (B.1.4 )
 
 
Visual Programming (D.1.7 )
 
 
Special-Purpose And Application-Based Systems (C.3 )
 
Would you recommend this review?
yes
no

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy