Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
A calculus for Esterel: If can, can. If no can, no can.
Florence S., You S., Tov J., Findler R. Proceedings of the ACM on Programming Languages3 (POPL):1-29,2019.Type:Article
Date Reviewed: Oct 27 2020

Esterel is a synchronous language for reactive programming. Developed in the mid 1980s, it has been used in several safety-critical applications for aviation and nuclear power plant control.

In Esterel, computation is modeled as a series of instants: discrete time steps that are moments of reactions to external signals. An instant is an atomic event: during it, there is no interference with the outside environment until the reaction is completed. Hence, reactions are considered to be instantaneous in the sense that accepting input signals and producing output values happen synchronously. It is the main principle of synchronous reactive programming.

After the completion of an instant, values of all its signals are known and can be communicated to the environment. Reactions permit parallelism, but it should be deterministic: the execution order of concurrent threads should not affect the result of the computation.

This paper proposes a calculus to describe the semantics of Esterel (or more precisely, its fragment, called Kernel Esterel). It is quite a challenging task due to the combination of synchronous behavior and deterministic parallelism. The proposed calculus is equational, based on the reduction relation that models a single-step computation within an instant. It works by term rewriting and is suitable for reasoning about program transformation, evaluation, and equivalence. The authors show how it helped them find bugs in two Esterel implementations.

A motivation behind the proposed approach was the desire to combine the best of the existing two forms of semantics for synchronous reactive programming: circuit semantics (giving meaning to programs by translating them to Boolean circuits) and operational semantics (giving meaning to whole programs instead of to their fragments). The paper does a good job of describing this new semantics, characterizing its advantages and shortcomings, and comparing it with existing approaches. For readers familiar with the formal semantics of programming languages, the content is not hard to follow; however, beginners may find the descriptions of the calculus and the standard reduction a bit difficult to understand initially.

Reviewer:  Temur Kutsia Review #: CR147091 (2103-0058)
Bookmark and Share
 
General (D.3.0 )
 
 
Operational Semantics (F.3.2 ... )
 
 
General (F.0 )
 
Would you recommend this review?
yes
no
Other reviews under "General": Date
Programming languages: paradigm and practice
Appleby D., McGraw-Hill, Inc., New York, NY, 1991. Type: Book (9780075579045)
Jan 1 1992
Programming languages
Dershem H. (ed), Jipping M., Wadsworth Publ. Co., Belmont, CA, 1990. Type: Book (9780534129002)
Jan 1 1992
Comparative programming languages
Friedman L., Prentice-Hall, Inc., Upper Saddle River, NJ, 1991. Type: Book (9780131554825)
Jan 1 1992
more...

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