Cédric Pasteur

dblp:00/8369 · DBLP profile ↗
← Back
10ranked-venue papers
0as first author
0since 2021 · last 2018
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 7Systems, architecture and hardware · 2Theory of computation · 2Artificial intelligence and machine learning · 1Applied, interdisciplinary, general and emerging computing · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
1 paper
Embedded and real-time systems · 100%
Software engineering, system software, and programming languages
2 papers
Programming languages and type systems · 70% Requirements engineering and software design · 23% Software maintenance and evolution · 7%

Topics — the 6 heaviest of 6, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Programming languages and type systems
type systems
0.312018
Building a Hybrid Systems Modeler on Synchronous Languages Principles · Proc. IEEE 2018
Embedded and real-time systems
cyber-physical systems
0.312018
Building a Hybrid Systems Modeler on Synchronous Languages Principles · Proc. IEEE 2018
Embedded and real-time systems › cyber-physical systems
hybrid system modeling
0.312018
Building a Hybrid Systems Modeler on Synchronous Languages Principles · Proc. IEEE 2018
Embedded and real-time systems
synchronous programming
0.312018
Building a Hybrid Systems Modeler on Synchronous Languages Principles · Proc. IEEE 2018
Requirements engineering and software design
component-based software
0.112010
GenoM3: Building middleware-independent robotic components · ICRA 2010
Software maintenance and evolution
software reuse
0.012010
GenoM3: Building middleware-independent robotic components · ICRA 2010

Methods — techniques the papers use, named apart from their topics

ordinary differential equations · 0.7nonstandard analysis · 0.7numerical solvers · 0.3numerical solver · 0.3component generator · 0.1
YearPublicationVenuePosition
2018 Scade 6: From a Kahn Semantics to a Kahn Implementation for Multicore
abstract
SCADE is an environment for developing critical embedded software that is used for more than twenty years in various application domains like avionics, nuclear plants, transportation, automotive. It comes with a language and a code generator which complies with the highest safety standards like DO-178C, IEC 61508, EN 50128, IEC 60880 and ISO 26262. The language has been founded on the pioneering work by Caspi and Halbwachs on Lustre. In 2008, a major revision of the language and compiler, named `Scade 6', was released. One of its novelty was a smooth integration of the traditional dataflow style of Lustre with control-structures inspired from those of Esterel and SyncCharts, with static/dynamic semantics and a compilation inspired from Lucid Synchrone. In particular, it relies on four dedicated type systems - typing, clock calculus, causality analysis, initialization analysis - and a compilation through source-to-source transformations into a minimal clocked data-flow language, based on a Kahn semantics, that is translated to imperative code. One ongoing work is the generation of code for multi-core architectures. Because of the intrinsic deterministic parallelism of Scade, we propose a solution that relies on annotations that specify what must be executed concurrently but do not change the semantics. The paper is a survey of past to ongoing work on Scade 6 lanzuaze definition and implementation.
Jean-Louis Colaço, Bruno Pagano, Cédric Pasteur, Marc Pouzet
FDL3
2018 Building a Hybrid Systems Modeler on Synchronous Languages Principles
abstract
Hybrid systems modeling languages that mix discrete and continuous time signals and systems are widely used to develop cyber-physical systems where control software interacts with physical devices. Compilers play a central role, statically checking source models, generating intermediate representations for testing and verification, and producing sequential code for simulation and execution on target platforms. This paper presents a novel approach to the design and implementation of a hybrid systems language, built on synchronous language principles and their proven compilation techniques. The result is a hybrid systems modeling language in which synchronous programming constructs can be mixed with ordinary differential equations (ODEs) and zero-crossing events, and a runtime that delegates their approximation to an off-the-shelf numerical solver. We propose an ideal semantics based on nonstandard analysis, which defines the execution of a hybrid model as an infinite sequence of infinitesimally small time steps. It is used to specify and prove correct three essential compilation steps: 1) a type system that guarantees that a continuous-time signal is never used where a discrete-time one is expected and conversely; 2) a type system that ensures the absence of combinatorial loops; and 3) the generation of statically scheduled code for efficient execution. Our approach has been evaluated in two implementations: the academic language Zélus, which extends a language reminiscent of Lustre with ODEs and zero-crossing events, and the industrial prototype Scade Hybrid, a conservative extension of Scade 6.
Albert Benveniste, Timothy Bourke, Benoît Caillaud, Jean-Louis Colaço, Cédric Pasteur, Marc Pouzet
Proc. IEEE5
2017 A Synchronous Look at the Simulink Standard Library
abstract
Hybrid systems modelers like Simulink come with a rich collection of discrete-time and continuous-time blocks. Most blocks are not defined in terms of more elementary ones—and some cannot be—but are instead written in imperative code and explained informally in a reference manual. This raises the question of defining a minimal set of orthogonal programming constructs such that most blocks can be programmed directly and thereby given a specification that is mathematically precise, and whose compiled version performs comparably to handwritten code. In this paper, we show that a fairly large set of blocks of a standard library like the one provided by Simulink can be programmed in a precise, purely functional language using stream equations, hierarchical automata, Ordinary Differential Equations (ODEs), and deterministic synchronous parallel composition. Some blocks cannot be expressed in our setting as they mix discrete-time and continuous-time signals in unprincipled ways that are statically forbidden by the type checker. The experiment is conducted in Zélus, a synchronous language that conservatively extends L ustre with ODEs to program systems that mix discrete-time and continuous-time signals.
Timothy Bourke, Francois Carcenac, Jean-Louis Colaço, Bruno Pagano, Cédric Pasteur, Marc Pouzet
ACM Trans. Embed. Comput. Syst.5
2015 A Synchronous-Based Code Generator for Explicit Hybrid Systems Languages
Timothy Bourke, Jean-Louis Colaço, Bruno Pagano, Cédric Pasteur, Marc Pouzet
CC4
2015 ReactiveML, ten years later
abstract
Ten years ago we introduced ReactiveML, an extension of a strict ML language with synchronous parallelism à la Esterel to program reactive applications. Our purpose was to demonstrate that synchronous language principles, originally invented and used for critical real-time control software, would integrate well with ML and prove useful in a wider context: reactive applications with complex data structures and sequential algorithms, organized as a dynamically evolving set of tightly synchronized parallel tasks.
Louis Mandel, Cédric Pasteur, Marc Pouzet
PPDP2
2015 Time refinement in a functional synchronous language
Louis Mandel, Cédric Pasteur, Marc Pouzet
Sci. Comput. Program.2
2014 Reactivity of Cooperative Systems - Application to ReactiveML
Louis Mandel, Cédric Pasteur
SAS2
2013 Time refinement in a functional synchronous language
abstract
Concurrent and reactive systems often exhibit multiple time scales. For instance, in a discrete simulation, the scale at which agents communicate might be very different from the scale used to model the internals of each agent.
Louis Mandel, Cédric Pasteur, Marc Pouzet
PPDP2
2012 A modular memory optimization for synchronous data-flow languages: application to arrays in a lustre compiler
abstract
The generation of efficient sequential code for synchronous data-flow languages raises two intertwined issues: control and memory optimization. While the former has been extensively studied, for instance in the compilation of Lustre and Signal, the latter has only been addressed in a restricted manner. Yet, memory optimization becomes a pressing issue when arrays are added to such languages.
Léonard Gérard, Adrien Guatto, Cédric Pasteur, Marc Pouzet
LCTES3
2010 GenoM3: Building middleware-independent robotic components
abstract
The topic of reusable software in robotics is now largely addressed. Components based architectures, where components are independent units that can be reused accross applications, have become more popular. As a consequence, a long list of middlewares and integration tools is available in the community, often in the form of open-source projects. However, these projects are generally self contained with little reuse between them. This paper presents a software engineering approach that intends to grant middleware independance to robotic software components so that a clear separation of concerns is achieved between highly reusable algorithmic parts and integration frameworks. Such a decoupling let middle-wares be used interchangeably, while fully benefitting from their specific, individual features. This work has been integrated into a new version of the open-source GenoM component generator tool: GenoM3
Anthony Mallet, Cédric Pasteur, Matthieu Herrb, Séverin Lemaignan, Félix Ingrand
ICRA2