Demo Data from EDBT 2026 / reviewers in the wild / expert
Jean-Louis Colaço
dblp:45/6974
· DBLP profile ↗
15ranked-venue papers
8as first author
1since 2021 · last 2023
0000-0003-3848-1826ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 8 · 3 first-authorApplied, interdisciplinary, general and emerging computing · 5 · 4 first-authorSystems, architecture and hardware · 2 · 1 first-author · 1 since 2021
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
1 paper |
Programming languages and type systems · 100% |
Topics — the 4 heaviest of 4, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Programming languages and type systems
type systems |
0.3 | 1 | 2018 | Building a Hybrid Systems Modeler on Synchronous Languages Principles · Proc. IEEE 2018 |
Embedded and real-time systems
cyber-physical systems |
0.3 | 1 | 2018 | Building a Hybrid Systems Modeler on Synchronous Languages Principles · Proc. IEEE 2018 |
Embedded and real-time systems › cyber-physical systems
hybrid system modeling |
0.3 | 1 | 2018 | Building a Hybrid Systems Modeler on Synchronous Languages Principles · Proc. IEEE 2018 |
Embedded and real-time systems
synchronous programming |
0.3 | 1 | 2018 | Building a Hybrid Systems Modeler on Synchronous Languages Principles · Proc. IEEE 2018 |
Methods — techniques the papers use, named apart from their topics
ordinary differential equations · 0.7nonstandard analysis · 0.7numerical solvers · 0.3numerical solver · 0.3
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2023 | A Constructive State-based Semantics and Interpreter for a Synchronous Data-flow Language with State MachinesabstractScade is a domain-specific synchronous functional language used to implement safety-critical real-time software for more than twenty years. Two main approaches have been considered for its semantics: (i) an indirect collapsing semantics based on a source-to-source translation of high-level constructs into a data-flow core language whose semantics is precisely specified and is the entry for code generation; a relational synchronous semantics , akin to Esterel, that applies directly to the source. It defines what is a valid synchronous reaction but hides, on purpose, if a semantics exists, is unique and can be computed; hence, it is not executable. This paper presents, for the first time, an executable , state-based semantics for a language that has the key constructs of Scade all together, in particular the arbitrary combination of data-flow equations and hierarchical state machines. It can apply directly to the source language before static checks and compilation steps. It is constructive in the sense that the language in which the semantics is defined is a statically typed functional language with call-by-value and strong normalization, e.g., it is expressible in a proof-assistant where all functions terminate. It leads to a reference, purely functional, interpreter. This semantics is modular and can account for possible errors, allowing to establish what property is ensured by each static verification performed by the compiler. It also clarifies how causality is treated in Scade compared with Esterel. This semantics can serve as an oracle for compiler testing and validation; to prototype novel language constructs before they are implemented, to execute possibly unfinished models or that are correct but rejected by the compiler; to prove the correctness of compilation steps. The semantics given in the paper is implemented as an interpreter in a purely functional style, in OCaml. Jean-Louis Colaço, Michael Mendler, Baptiste Pauget, Marc Pouzet |
ACM Trans. Embed. Comput. Syst. | 1 |
| 2018 | Scade 6: From a Kahn Semantics to a Kahn Implementation for MulticoreabstractSCADE 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 |
FDL | 1 |
| 2018 | Building a Hybrid Systems Modeler on Synchronous Languages PrinciplesabstractHybrid 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. IEEE | 4 |
| 2017 | SCADE 6: A formal language for embedded critical software development (invited paper)abstractSCADE is a high-level language and environment for developing safety-critical embedded control software. It has been used for more than twenty years in various application domains like avionics, nuclear plants, transportation, and automotive. SCADE was founded on the synchronous data-flow language Lustre invented by Caspi and Halbwachs. In the early years, it was mainly seen as a graphical notation for Lustre but with the unique and key addition of a code generator qualified to the highest standards for safety-critical applications. In 2008, a major revision based on the new language `Scade 6' was released. This language is an original combination of the Lustre data-flow style with control structures borrowed from Esterel and SyncCharts, and compilation and static analyses from Lucid Synchrone for ensuring safety properties. This increase in expressiveness together with the qualified code generator have dramatically widened SCADE scope of applications. While previous publications have described some of its language constructs and compiler algorithms, no reference publication on `Scade 6' exists to date. In this paper, we recall the decisions made in its design, illustrate the main language features and static analyses, and describe the compiler organization developed to satisfy the qualification process. Jean-Louis Colaço, Bruno Pagano, Marc Pouzet |
TASE | 1 |
| 2017 | A Synchronous Look at the Simulink Standard LibraryabstractHybrid 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. | 3 |
| 2015 | A Synchronous-Based Code Generator for Explicit Hybrid Systems Languages
Timothy Bourke, Jean-Louis Colaço, Bruno Pagano, Cédric Pasteur, Marc Pouzet |
CC | 2 |
| 2009 | Experience report: using objective caml to develop safety-critical embedded tools in a certification frameworkabstractHigh-level tools have become unavoidable in industrial software development processes. Safety-critical embedded programs don't escape this trend. In the context of safety-critical embedded systems, the development processes follow strict guidelines and requirements. The development quality assurance applies as much to the final embedded code, as to the tools themselves. The French company Esterel Technologies decided in 2006 to base its new SCADE SUITE 6TM certifiable code generator on Objective Caml. This paper outlines how it has been challenging in the context of safety critical software development by the rigorous norms DO-178B, IEC 61508, EN 50128 and such. Bruno Pagano, Olivier Andrieu, Thomas Moniot, Benjamin Canou, Emmanuel Chailloux, Philippe Wang, Pascal Manoury, Jean-Louis Colaço |
ICFP | 8 |
| 2009 | Synchronous objects with scheduling policies: introducing safe shared memory in lustreabstractThis paper addresses the problem of designing and implementing complex control systems for real-time embedded software. Typical applications involve different control laws corresponding to different phases or modes, e.g., take-off, full flight and landing in a fly-by-wire control system. On one hand, existing methods such as the combination of Simulink/Stateflow provide powerful but unsafe mechanisms by means of imperative updates of shared variables. On the other hand, synchronous languages and tools such as Esterel or SCADE/Lustre are too restrictive and forbid to fully separate the specification of modes from their actual instantiation with a particular control automaton. Paul Caspi, Jean-Louis Colaço, Léonard Gérard, Marc Pouzet, Pascal Raymond |
LCTES | 2 |
| 2008 | Clock-directed modular code generation for synchronous data-flow languagesabstractThe compilation of synchronous block diagrams into sequential imperative code has been addressed in the early eighties and can now be considered as folklore. However, separate, or modular, code generation, though largely used in existing compilers and particularly in industrial ones, has never been precisely described or entirely formalized. Such a formalization is now fundamental in the long-term goal to develop a mathematically certified compiler for a synchronous language as well as in simplifying existing implementations. Dariusz Biernacki, Jean-Louis Colaço, Grégoire Hamon, Marc Pouzet |
LCTES | 2 |
| 2008 | Certified Development Tools Implementation in Objective Caml
Bruno Pagano, Olivier Andrieu, Benjamin Canou, Emmanuel Chailloux, Jean-Louis Colaço, Thomas Moniot, Philippe Wang |
PADL | 5 |
| 2006 | Mixing signals and modes in synchronous data-flow systemsabstractSynchronous data-flow languages such as SCADE LUSTRE manage infinite sequences, or streams, as primitive values making them naturally adapted to the description of dominated systems. Their conservative extension with means to define control-structures or modes has been a long-term research topic through which several solutions have emerged.In this paper, we pursue this effort and generalize existing solutions by providing two constructs: a general form of state machines called parameterized state machines, and valued signals, as can be found in ESTEREL. Parameterized state machines greatly reduce the reliance on error-prone mechanisms such as shared memory in automaton-based programming. Signals provide a new way of programming with multi-rate data in synchronous dataflow languages. Together, they allow for a much more direct and natural programming of systems that combine dataflow and state-machines.The proposed extension is fully implemented in the new LUCID SYNCHRONE compiler. Jean-Louis Colaço, Grégoire Hamon, Marc Pouzet |
EMSOFT | 1 |
| 2005 | A conservative extension of synchronous data-flow with state machinesabstractThis paper presents an extension of a synchronous data-flow language such as Lustre with imperative features expressed in terms of powerful state machine à la SyncChart. This extension is fully conservative in the sense that all the programs from the basic language still make sense in the extended 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 semantics for the extension, it is light to implement in an existing 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. Jean-Louis Colaço, Bruno Pagano, Marc Pouzet |
EMSOFT | 1 |
| 2004 | Towards a higher-order synchronous data-flow languageabstractThe paper introduces a higher-order synchronous data-flow language in which communication channels may themselves transport programs. This provides a mean to dynamically reconfigure data-flow processes. The language comes as a natural and strict extension of both lustre and lucy. This extension is conservative, in the sense that a first-order restriction of the language can receive the same semantics.We illustrate the expressivity of the language with some examples, before giving the formal semantics of the underlying calculus. The language is equipped with a polymorphic type system allowing types to be automatically inferred and a clock calculus rejecting programs for which synchronous execution cannot be statically guaranteed. To our knowledge, this is the first higher-order synchronous data-flow language where stream functions are first class citizens. Jean-Louis Colaço, Alain Girault, Grégoire Hamon, Marc Pouzet |
EMSOFT | 1 |
| 2004 | Type-based initialization analysis of a synchronous dataflow language
Jean-Louis Colaço, Marc Pouzet |
Int. J. Softw. Tools Technol. Transf. | 1 |
| 2003 | Clocks as First Class Abstract Types
Jean-Louis Colaço, Marc Pouzet |
EMSOFT | 1 |