429 research outputs found
An Algebra of Synchronous Scheduling Interfaces
In this paper we propose an algebra of synchronous scheduling interfaces
which combines the expressiveness of Boolean algebra for logical and functional
behaviour with the min-max-plus arithmetic for quantifying the non-functional
aspects of synchronous interfaces. The interface theory arises from a
realisability interpretation of intuitionistic modal logic (also known as
Curry-Howard-Isomorphism or propositions-as-types principle). The resulting
algebra of interface types aims to provide a general setting for specifying
type-directed and compositional analyses of worst-case scheduling bounds. It
covers synchronous control flow under concurrent, multi-processing or
multi-threading execution and permits precise statements about exactness and
coverage of the analyses supporting a variety of abstractions. The paper
illustrates the expressiveness of the algebra by way of some examples taken
from network flow problems, shortest-path, task scheduling and worst-case
reaction times in synchronous programming.Comment: In Proceedings FIT 2010, arXiv:1101.426
Causality in the Semantics of Esterel: Revisited
We re-examine the challenges concerning causality in the semantics of Esterel
and show that they pertain to the known issues in the semantics of Structured
Operational Semantics with negative premises. We show that the solutions
offered for the semantics of SOS also provide answers to the semantic
challenges of Esterel and that they satisfy the intuitive requirements set by
the language designers
Reactive concurrent programming revisited
In this note we revisit the so-called reactive programming style, which
evolves from the synchronous programming model of the Esterel language by
weakening the assumption that the absence of an event can be detected
instantaneously. We review some research directions that have been explored
since the emergence of the reactive model ten years ago. We shall also outline
some questions that remain to be investigated
Approximate Reachability for Dead Code Elimination in Esterel*
Esterel is an imperative synchronous programming language for the design of reactive systems. Esterel* extends Esterel with a non-instantaneous jump instruction (compatible with concurrency, preemption, etc.) so as to enable powerful source-to-source program transformations, amenable to formal verification. In this work, we propose an approximate reachability algorithm for Esterel* and use its output to remove dead code. We prove the correctness of our techniques
Instantaneous Transitions in Esterel
Esterel is an imperative synchronous programming language for the specification of deterministic concurrent reactive systems. While providing the usual control-flow constructs—sequences, loops, conditionals, and exceptions—its lack of a goto instruction makes the programming of arbitrary finite state machines awkward and hinders the design of source-to-source program transformations. We previously introduced to Esterel a non-instantaneous gotopause instruction, which prevents the synchronous execution of code before and code after the transition. Here, we tackle instantaneous transitions. Concurrency demands we assign scopes and priorities to gotos, so we extend Esterel's exception handling mechanism to allow exception handlers in arbitrary locations. We advocate for and formalize the resulting language. We observe that instantaneous gotos complement but do not replace non-instantaneous gotopauses
Removing Cycles in Esterel Programs
Programs written in the synchronous programming language Esterel may
contain statically cyclic dependencies of signals, which inhibits the
application of certain compilation approaches that rely on static
scheduling. This talk proposes an algorithm which, given a
constructive synchronous program, performs a semantics-preserving
source-level code transformation that removes cyclic signal
dependencies. The transformation exploits the monotonicity of
constructive programs, and is illustrated in the context of Esterel,
but should be applicable to other synchronous languages as well
Towards Coq-verified Esterel Semantics and Compiling
This paper focuses on semantics of the Esterel synchronous programming
language. In particular, in addition to the usual behavioral (CBS) and state
(CSS) semantics, it introduces a novel microstep semantics which does not need
the Can potential function. Formal proofs in Coq of the equivalence between the
CBS and CSS semantics and of the refinement between the CSS and microstep
semantics are also provided
- …