Learn More
Invited Paper This paper describes the language LUSTRE which is a data flow synchronous language, designed for programming reactive systems -uch as automatic control and monitoring s y s t e m s a s well as for describing hardware. The data flow aspect of LUSTRE makes it very close to usual description tools in these domains (block-diagrams, networks of(More)
LUSTRE is a synchronous data-flow language for programming systems which interact with their environments in real-time. After an informal presentation of the language, we describe its semantics by means of structural inference rules. Moreover, we show how to use this semantics in order to generate efficient sequential code, namely, a finite state automaton(More)
— Twelve years ago, Proceedings of the IEEE devoted a special section to the synchronous languages. This article discusses the improvements , difficulties, and successes that have occured with the synchronous languages since then. Today, synchronous languages have been established as a technology of choice for modeling, specifying, validating, and(More)
Invited Paper Twelve years ago, PROCEEDINGS OF THE IEEE devoted a special section to the synchronous languages. This paper discusses the improvements , difficulties, and successes that have occured with the synchronous languages since then. Today, synchronous languages have been established as a technology of choice for modeling, specifying , validating,(More)
Recently, we have proposed a set of buffering schemes to preserve the semantics of a synchronous program when the latter is implemented as a set of multiple tasks running under preemptive scheduling. These schemes, however, are not optimal in terms of memory (buffer usage). In this paper we propose a new protocol which generalizes the previous schemes. The(More)
Model-based design is advocated as the method of choice when dealing with critical systems as well as high quality systems. However, it often abstracts implementation details such as execution times. This can be a problem when dealing with urgent events whose implementation requires preemptive scheduling. In this paper, we propose an inter-task(More)
In previous work, we have proposed a method of preserving the functional semantics of model-based designs by the use of static checks and a double-buffer protocol [12]. However, this is restricted to static, fixed-priority scheduling and for high-priority to low-priority communications requires a double buffer to be stored for each pair of communicating(More)
We present a layered end-to-end approach for the design and implementation of embedded software on a distributed platform. The approach comprises a high-level modeling and simulation layer (Simulink), a middle-level programming and validation layer (SCADE/Lustre) and a low-level execution layer (TTA). We provide algorithms and tools to pass from one layer(More)
Synchronous data-flow is a programming paradigm which has been successfully applied in reactive systems. In this context, it can be characterized as some class of static bounded memory data-flow networks. In particular, these networks are not recursively defined, and obey some kind of "synchronous" constraints (<i>clock calculus</i>). Based on Kahn's(More)