Results 1 - 10
of
33
A conservative extension of synchronous data-flow with state machines
- in Proceedings of the 5th ACM International Conference on Embedded Software (EMSOFT ’05
, 2005
"... This paper presents an extension of a synchronous data-flow language such as Lustre with imperative features expressed in terms of powerful state machine a ̀ la SyncChart. This extension is fully conservative in the sense that all the pro-grams from the basic language still make sense in the ex-tend ..."
Abstract
-
Cited by 53 (9 self)
- Add to MetaCart
This paper presents an extension of a synchronous data-flow language such as Lustre with imperative features expressed in terms of powerful state machine a ̀ la SyncChart. This extension is fully conservative in the sense that all the pro-grams from the basic language still make sense in the ex-tended language and their semantics is preserved. From a syntactical point of view this extension consists in hierarchical state machines that may carry at each hierarchy level a bunch of equations. This proposition is an alternative to the joint use of Simulink and Stateflow but improves it by allowing a fine grain mix of both styles. The central idea of the paper is to base this extension on the use of clocks, translating imperative constructs into well clocked data-flow programs from the basic language. This clock directed approach is an easy way to define a seman-tics for the extension, it is light to implement in an exist-ing compiler and experiments show that the generated code compete favorably with ad-hoc techniques. The proposed extension has been implemented in the ReLuC compiler of Scade/Lustre and in the Lucid Synchrone compiler. Categories and Subject Descriptors C.3 [Special-purpose and application-based systems]: Real-time and embedded systems; D.3.2 [Language clas-sifications]: Data-flow languages
N-synchronous Kahn networks: a relaxed model of synchrony for real-time systems
- in "ACM International Conference on Principles of Programming Languages (POPL’06
, 2006
"... The design of high-performance stream-processing systems is a fast growing domain, driven by markets such like high-end TV, gaming, 3D animation and medical imaging. It is also a surprisingly demanding task, with respect to the algorithmic and conceptual simplicity of streaming applications. It need ..."
Abstract
-
Cited by 43 (6 self)
- Add to MetaCart
(Show Context)
The design of high-performance stream-processing systems is a fast growing domain, driven by markets such like high-end TV, gaming, 3D animation and medical imaging. It is also a surprisingly demanding task, with respect to the algorithmic and conceptual simplicity of streaming applications. It needs the close cooperation between numerical analysts, parallel programming experts, realtime control experts and computer architects, and incurs a very high level of quality insurance and optimization. In search for improved productivity, we propose a programming model and language dedicated to high-performance stream processing. This language builds on the synchronous programming model and on domain knowledge — the periodic evolution of streams — to allow correct-by-construction properties to be proven by the compiler. These properties include resource requirements and delays between input and output streams. Automating this task avoids tedious and error-prone engineering, due to the combinatorics of the composition of filters with multiple data rates and formats. Correctness of the implementation is also difficult to assess with traditional (asynchronous, simulation-based) approaches. This language is thus provided with a relaxed notion of synchronous composition, called n-synchrony: two processes are n-synchronous if they can communicate in the ordinary (0-)synchronous model with a FIFO buffer of size n. Technically, we extend a core synchronous data-flow language with a notion of periodic clocks, and design a relaxed clock calculus (a type system for clocks) to allow non strictly synchronous processes to be composed or correlated. This relaxation is associated with two sub-typing rules in the clock calculus. Delay, buffer insertion and control code for these buffers are automatically inferred from the clock types through a systematic transformation into a standard synchronous program. We formally define the se-
Safe Functional Reactive Programming through Dependent Types
"... Functional Reactive Programming (FRP) is an approach to reactive programming where systems are structured as networks of functions operating on signals. FRP is based on the synchronous dataflow paradigm and supports both continuous-time and discrete-time signals (hybrid systems). What sets FRP apart ..."
Abstract
-
Cited by 18 (1 self)
- Add to MetaCart
(Show Context)
Functional Reactive Programming (FRP) is an approach to reactive programming where systems are structured as networks of functions operating on signals. FRP is based on the synchronous dataflow paradigm and supports both continuous-time and discrete-time signals (hybrid systems). What sets FRP apart from most other languages for similar applications is its support for systems with dynamic structure and for higher-order reactive constructs. Statically guaranteeing correctness properties of programs is an attractive proposition. This is true in particular for typical application domains for reactive programming such as embedded systems. To that end, many existing reactive languages have type systems or other static checks that guarantee domain-specific properties, such as feedback loops always being well-formed. However, they are limited in their capabilities to support dynamism and higher-order data-flow compared with FRP. Thus, the onus of ensuring such properties of FRP programs has so far been on the programmer as established static techniques do not suffice. In this paper, we show how dependent types allow this concern to be addressed. We present an implementation of FRP embedded in the dependently-typed language Agda, leveraging the type system of the host language to craft a domain-specific (dependent) type system for FRP. The implementation constitutes a discrete, operational semantics of FRP, and as it passes the Agda type, coverage, and termination checks, we know the operational semantics is total, which means our type system is safe. Categories and Subject Descriptors D.3.2 [Programming Languages]: Language Classifications—applicative (functional) languages, data-flow languages, specialized application languages General Terms Languages Keywords dependent types, domain-specific languages, DSELs, FRP, functional programming, reactive programming, synchronous data-flow
Causal commutative arrows and their optimization
- In International Conference on Functional Programming (ICFP ’09
, 2009
"... Abstract Arrows are a popular form of abstract computation. Being more general than monads, they are more broadly applicable, and in particular are a good abstraction for signal processing and dataflow computations. Most notably, arrows form the basis for a domain specific language called Yampa, wh ..."
Abstract
-
Cited by 17 (1 self)
- Add to MetaCart
(Show Context)
Abstract Arrows are a popular form of abstract computation. Being more general than monads, they are more broadly applicable, and in particular are a good abstraction for signal processing and dataflow computations. Most notably, arrows form the basis for a domain specific language called Yampa, which has been used in a variety of concrete applications, including animation, robotics, sound synthesis, control systems, and graphical user interfaces. Our primary interest is in better understanding the class of abstract computations captured by Yampa. Unfortunately, arrows are not concrete enough to do this with precision. To remedy this situation we introduce the concept of commutative arrows that capture a kind of non-interference property of concurrent computations. We also add an init operator, and identify a crucial law that captures the causal nature of arrow effects. We call the resulting computational model causal commutative arrows. To study this class of computations in more detail, we define an extension to the simply typed lambda calculus called causal commutative arrows (CCA), and study its properties. Our key contribution is the identification of a normal form for CCA called causal commutative normal form (CCNF). By defining a normalization procedure we have developed an optimization strategy that yields dramatic improvements in performance over conventional implementations of arrows. We have implemented this technique in Haskell, and conducted benchmarks that validate the effectiveness of our approach. When combined with stream fusion, the overall methodology can result in speed-ups of greater than two orders of magnitude.
The synchronous hypothesis and synchronous languages, in "Embedded Systems Handbook
, 2005
"... The design of electronic Embedded Systems relies on a number of different engineering disciplines. As the domain becomes ever more important, both in theoretical challenges and in industrial relevance, it has drawn a considerable attention in recent years, with a number of proposals for formalisms, ..."
Abstract
-
Cited by 13 (2 self)
- Add to MetaCart
(Show Context)
The design of electronic Embedded Systems relies on a number of different engineering disciplines. As the domain becomes ever more important, both in theoretical challenges and in industrial relevance, it has drawn a considerable attention in recent years, with a number of proposals for formalisms, languages and models to help support the design flow. In this article we shall describe Synchronous Reactive languages, which emerged as early as the 1980’s decade, and are now gaining increasing recognition for their modeling adequacy to embedded systems. 1
A metamodel for the design of polychronous systems
"... This article presents the development of a metamodel and an open-source design environment for the synchronous language SIGNAL in the GME and Eclipse frameworks. This environment is intended to be used as a pivot modeling tool for a customized, aspect-oriented and application-driven, computer-aided ..."
Abstract
-
Cited by 9 (5 self)
- Add to MetaCart
(Show Context)
This article presents the development of a metamodel and an open-source design environment for the synchronous language SIGNAL in the GME and Eclipse frameworks. This environment is intended to be used as a pivot modeling tool for a customized, aspect-oriented and application-driven, computer-aided engineering of embedded systems starting from multiple and heterogeneous initial specifications. The metamodel, called SIGNALMETA, is defined on top of the design workbench POLYCHRONY, which is dedicated to SIGNAL programming. Automated transformations are defined and implemented in order to produce, analyze, statically verify and model-check programs obtained from high-level models. The proposed approach promotes model-driven engineering within a framework that strongly favors formal validation. It aims at significantly decreasing design costs while improving the quality of systems. We demonstrate the agility of this approach by considering the design of both control-oriented and avionic systems. We start with an implementation of core polychronous1 data-flow concepts in GME and show the ease of its modular extension with application-specific concepts such as mode automata or integrated modular avionics concepts. This work is the first attempt to generalize the formal model of computation and the design philosophy of POLYCHRONY.
A formalism for higher-order composition languages that satisfies the church-rosser property
, 2006
"... personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires pri ..."
Abstract
-
Cited by 8 (6 self)
- Add to MetaCart
(Show Context)
personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission.
A Type System for the Automatic Distribution of Higher-order Synchronous Dataflow Programs ∗
"... We address the design of distributed systems with synchronous dataflow programming languages. As modular design entails handling both architectural and functional modularity, our first contribution is to extend an existing synchronous dataflow programming language with primitives allowing the descri ..."
Abstract
-
Cited by 8 (1 self)
- Add to MetaCart
(Show Context)
We address the design of distributed systems with synchronous dataflow programming languages. As modular design entails handling both architectural and functional modularity, our first contribution is to extend an existing synchronous dataflow programming language with primitives allowing the description of a distributed architecture and the localization of some expressions onto some processors. We also present a distributed semantics to formalize the distributed execution of synchronous programs. Our second contribution is to provide a type system, in order to infer the localization of non-annotated values by means of type inference and to ensure, at compilation time, the consistency of the distribution. Our third contribution is to provide a type-directed projection operation to obtain automatically, from a centralized typed program, the local program to be executed by each computing resource. The type system as well as the automatic distribution mechanism has been fully implemented in the compiler of an existing synchronous data-flow programming language.
Synchronization of periodic clocks
- In ACM Conf. on Embedded Software (EMSOFT’05
, 2005
"... We propose a programming model dedicated to real-time videostreaming applications for embedded media devices, including highdefinition TVs. This model is built on the synchronous programming model extended with domain-specific knowledge — periodic evolution of streams — to allow correct-by-construct ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
(Show Context)
We propose a programming model dedicated to real-time videostreaming applications for embedded media devices, including highdefinition TVs. This model is built on the synchronous programming model extended with domain-specific knowledge — periodic evolution of streams — to allow correct-by-construction properties of the application to be proven by the compiler. These properties include buffer requirements and delays between input and output streams. Such properties are tedious to analyze by hand, due to the combinatorics of video filters, multiple data rates and formats. We show how to extend a core synchronous data-flow language with a notion of periodic clocks, and to design a relaxed clock calculus (a type system for clocks) to allow non strictly synchronous processes to be composed. This relaxation is associated with a subtyping rule in the clock calculus. Delay, buffer insertion and control code for these buffers are automatically inferred from the clock types through a systematic program transformation. Categories and Subject Descriptors C.3 [Special-purpose and application-based systems]: Real-time and embedded systems; D.3.2 [Language classifications]: Data-flow languages