Nicolas Halbwachs

dblp:01/680 · DBLP profile ↗
← Back
39ranked-venue papers
15as first author
0since 2021 · last 2019
0000-0002-1426-7967ORCID · verified

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

Software engineering, systems software and programming languages · 22 · 10 first-authorTheory of computation · 11 · 6 first-authorApplied, interdisciplinary, general and emerging computing · 7 · 2 first-authorSystems, architecture and hardware · 2

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.

Software engineering, system software, and programming languages
10 papers
Program analysis · 56% Program verification · 17% Software testing · 14%
Computer architecture, parallel and distributed computing, and storage systems
8 papers
Embedded and real-time systems · 86% Electronic design automation · 14%

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

TopicWeightPapersLastEvidence papers
Program analysis › static analysis
abstract interpretation
0.122008
Discovering properties about arrays in simple programs · PLDI 2008
Automatic Discovery of Linear Restraints Among Variables of a Program · POPL 1978
Program analysis › error detection
array bounds checking
0.112008
Discovering properties about arrays in simple programs · PLDI 2008
Embedded and real-time systems
synchronous programming
0.022003
The synchronous languages 12 years later · Proc. IEEE 2003
Lustre: A Declarative Language for Programming Synchronous Systems · POPL 1987
Software testing › test generation
test sequence generation
0.011998
Automatic Testing of Reactive Systems · RTSS 1998
Program verification › concurrent program verification
parameterized verification
0.011997
Automatic Verification of Parameterized Linear Networks of Processes · POPL 1997
Program verification
safety verification
0.011997
Automatic Verification of Parameterized Linear Networks of Processes · POPL 1997
Programming languages and type systems › domain-specific languages › synchronous languages
synchronous dataflow languages
0.021991
The synchronous data flow programming language LUSTRE · Proc. IEEE 1991
Lustre: A Declarative Language for Programming Synchronous Systems · POPL 1987
Electronic design automation › hardware verification and test
timing verification
0.011992
An implementation of three algorithms for timing verification based on automata emptiness · RTSS 1992
Programming languages and type systems › domain-specific languages › synchronous languages
lustre
0.011991
The synchronous data flow programming language LUSTRE · Proc. IEEE 1991
Program verification
reactive system verification
0.011991
The synchronous data flow programming language LUSTRE · Proc. IEEE 1991
Program verification
temporal logic verification
0.011991
The synchronous data flow programming language LUSTRE · Proc. IEEE 1991
Programming languages and type systems › domain-specific languages
synchronous languages
0.011998
Synchronous Programming of Reactive Systems · CAV 1998
Programming languages and type systems
language design
0.021992
Programming and Verifying Real-Time Systems by Means of the Synchronous Data-Flow Language LUSTRE · IEEE Trans. Software Eng. 1992
Outline of a Real Time Data Flow Language · RTSS 1985
Embedded and real-time systems
real-time programming languages
0.011985
Outline of a Real Time Data Flow Language · RTSS 1985
Concurrent programming › concurrency models
synchronous programming
0.011993
Delay Analysis in Synchronous Programs · CAV 1993
Programming languages and type systems › programming paradigms
dataflow language
0.011992
Programming and Verifying Real-Time Systems by Means of the Synchronous Data-Flow Language LUSTRE · IEEE Trans. Software Eng. 1992
Automated reasoning and model checking
reachability
0.011992
An implementation of three algorithms for timing verification based on automata emptiness · RTSS 1992
Embedded and real-time systems › control systems
automatic control
0.011991
The synchronous data flow programming language LUSTRE · Proc. IEEE 1991
Embedded and real-time systems
reactive systems
0.011991
The synchronous data flow programming language LUSTRE · Proc. IEEE 1991
Compilers and program optimization
code generation
0.011987
Lustre: A Declarative Language for Programming Synchronous Systems · POPL 1987
Program analysis
static analysis
0.011978
Automatic Discovery of Linear Restraints Among Variables of a Program · POPL 1978

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

abstract interpretation · 0.1relational abstract domains · 0.1reactive system design · 0.0formal methods · 0.0timing analysis · 0.0model checking · 0.0fixpoint computation · 0.0cousot's widening · 0.0synchronous dataflow · 0.0synchronous data flow · 0.0structural operational semantics · 0.0data flow language design · 0.0
YearPublicationVenuePosition
2019 Disjunctive Relational Abstract Interpretation for Interprocedural Program Analysis
Rémy Boutonnet, Nicolas Halbwachs
VMCAI2
2018 Improving the results of program analysis by abstract interpretation beyond the decreasing sequence
Rémy Boutonnet, Nicolas Halbwachs
Formal Methods Syst. Des.2
2012 When the Decreasing Sequence Fails
Nicolas Halbwachs, Julien Henry
SAS1
2010 An Analysis of Permutations in Arrays
Valentin Perrelle, Nicolas Halbwachs
VMCAI2
2009 Synchronous Modeling and Validation of Priority Inheritance Schedulers
Erwan Jahier, Nicolas Halbwachs, Pascal Raymond
FASE2
2008 Discovering properties about arrays in simple programs
abstract
Array bound checking and array dependency analysis (for parallelization) have been widely studied. However, there are much less results about analyzing properties of array contents. In this paper, we propose a way of using abstract interpretation for discovering properties about array contents in some restricted cases: one-dimensional arrays, traversed by simple "for" loops. The basic idea, borrowed from [GRS05], consists in partitioning arrays into symbolic intervals (e.g., [1,i -- 1], [i,i], [i + 1,n]), and in associating with each such interval I and each array A an abstract variable AI; the new idea is to consider relational abstract properties ψ(AI, BI, ...) about these abstract variables, and to interpret such a property pointwise on the interval I: ∀l ∈ I, ψ(A[l], B[l],...). The abstract semantics of our simple programs according to these abstract properties has been defined and implemented in a prototype tool. The method is able, for instance, to discover that the result of an insertion sort is a sorted array, or that, in an array traversal guarded by a "sentinel", the index stays within the bounds.
Nicolas Halbwachs, Mathias Péron
PLDI1
2007 Virtual execution of AADL models via a translation into synchronous programs
abstract
Architecture description languages are used to describe both the hardware and software architecture of an application, at system-level. The basic software components are intended to be developed independently, and then deployed on the described architecture. This separate development of the architecture and of the software raises the problem of early validation of the integrated system.
Erwan Jahier, Nicolas Halbwachs, Pascal Raymond, Xavier Nicollin, David Lesens
EMSOFT2
2007 An Abstract Domain Extending Difference-Bound Matrices with Disequality Constraints
Mathias Péron, Nicolas Halbwachs
VMCAI2
2006 Combining Widening and Acceleration in Linear Relation Analysis
Laure Gonnord, Nicolas Halbwachs
SAS2
2006 Some ways to reduce the space dimension in polyhedra computations
Nicolas Halbwachs, David Merchat, Laure Gonnord
Formal Methods Syst. Des.1
2005 A synchronous language at work: the story of Lustre
abstract
We recall the story of the development of the synchronous data-flow language Lustre and of its industrial transfer inside the toolset SCADE. We try to analyse the reasons of its success, and to report the main lessons we got from the transfer of an academic concept into real industrial world.
Nicolas Halbwachs
MEMOCODE1
2004 Counter-example generation in symbolic abstract model-checking
Gordon J. Pace, Nicolas Halbwachs, Pascal Raymond
Int. J. Softw. Tools Technol. Transf.2
2003 Cartesian Factoring of Polyhedra in Linear Relation Analysis
Nicolas Halbwachs, David Merchat, Catherine Parent-Vigouroux
SAS1
2003 The synchronous languages 12 years later
abstract
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, and implementing real-time embedded applications. The paradigm of synchrony has emerged as an engineer-friendly design method based on mathematically sound tools.
Albert Benveniste, Paul Caspi, Stephen A. Edwards, Nicolas Halbwachs, Paul Le Guernic, Robert de Simone
Proc. IEEE4
2002 Synchronous Modelling of Asynchronous Systems
Nicolas Halbwachs, Siwar Baghdadi
EMSOFT1
2001 Automatic verification of parameterized networks of processes
David Lesens, Nicolas Halbwachs, Pascal Raymond
Theor. Comput. Sci.2
1999 Dynamic Partitioning in Analyses of Numerical Properties
Bertrand Jeannet, Nicolas Halbwachs, Pascal Raymond
SAS2
1998 Synchronous Programming of Reactive Systems
Nicolas Halbwachs
CAV1
1998 Automatic Testing of Reactive Systems
abstract
The paper addresses the problem of automatizing the production of test sequences for reactive systems. We particularly focus on two points: (1) generating relevant inputs, with respect to some knowledge about the environment in which the system is intended to run; (2) checking the correctness of the test results, according to the expected behavior of the system. We propose to use synchronous observers to express both the relevance and the correctness of the test sequences. In particular, the relevance observer is used to randomly choose inputs satisfying temporal assumptions about the environment. These assumptions may involve both Boolean and linear numerical constraints. A prototype tool called LURETTE has been developed and experimented with, which works on observers written in the LUSTRE programming language.
Pascal Raymond, Xavier Nicollin, Nicolas Halbwachs, Daniel Weber 0017
RTSS3
1998 About Synchronous Programming and Abstract Interpretation
Nicolas Halbwachs
Sci. Comput. Program.1
1997 Automatic Verification of Parameterized Linear Networks of Processes
abstract
This paper describes a method to verify safety properties of parameterized linear networks of processes. The method is based on the construction of a network invariant, defined as a fixpoint. Such invariants can often be automatically computed using heuristics based on Cousot's widening techniques. These techniques have been implemented and some non-trivial examples are presented.
David Lesens, Nicolas Halbwachs, Pascal Raymond
POPL2
1997 Verification of Real-Time Systems using Linear Relation Analysis
Nicolas Halbwachs, Yann-Erick Proy, Patrick Roumanoff
Formal Methods Syst. Des.1
1996 Compositional Semantics of Non-Deterministic Synchronous Languages
Florence Maraninchi, Nicolas Halbwachs
ESOP2
1995 The Algorithmic Analysis of Hybrid Systems
abstract
We present a general framework for the formal specification and algorithmic analysis of hybrid systems. A hybrid system consists of a discrete program with an analog environment. We model hybrid systems as finite automata equipped with variables that evolve continuously with time according to dynamical laws. For verification purposes, we restrict ourselves to linear hybrid systems, where all variables follow piecewise-linear trajectories. We provide decidability and undecidability results for classes of linear hybrid systems, and we show that standard program-analysis techniques can be adapted to linear hybrid systems. In particular, we consider symbolic model-checking and minimization procedures that are based on the reachability analysis of an infinite state space. The procedures iteratively compute state sets that are definable as unions of convex polyhedra in multidimensional real space. We also present approximation techniques for dealing with systems for which the iterative procedures do not converge.
Rajeev Alur, Costas Courcoubetis, Nicolas Halbwachs, Thomas A. Henzinger, Pei-Hsin Ho, Xavier Nicollin, Alfredo Olivero, Joseph Sifakis, Sergio Yovine
Theor. Comput. Sci.3
1994 About Synchronous Programming and Abstract Interpretation
Nicolas Halbwachs
SAS1
1994 Verification of Linear Hybrid Systems by Means of Convex Approximations
Nicolas Halbwachs, Yann-Eric Proy, Pascal Raymond
SAS1
1993 Delay Analysis in Synchronous Programs
Nicolas Halbwachs
CAV1
1992 Minimization of Timed Transition Systems
Rajeev Alur, Costas Courcoubetis, Nicolas Halbwachs, David L. Dill, Howard Wong-Toi
CONCUR3
1992 An implementation of three algorithms for timing verification based on automata emptiness
abstract
Three algorithms for checking the emptiness of a timed transition system have been implemented. The first algorithm performs a straightforward reachability analysis on sets of states of the system, rather than on individual states. This corresponds to stepping symbolically through the system many states at a time. The other two algorithms are minimization algorithms. These simultaneously perform reachability analysis and minimization from an implicit system description. The paradigm for verification is to test for the emptiness of the set of all timed system executions that violate a requirements specification. Preliminary results over two simple examples indicate that memory usage is a more limiting factor than time.>
Rajeev Alur, Costas Courcoubetis, David L. Dill, Nicolas Halbwachs, Howard Wong-Toi
RTSS4
1992 An Experience in Proving Regular Networks of Processes by Modular Model Checking
Nicolas Halbwachs, Fabienne Lagnier, Christophe Ratel
Acta Informatica1
1992 Minimal State Graph Generation
Ahmed Bouajjani, Jean-Claude Fernandez, Nicolas Halbwachs, Pascal Raymond
Sci. Comput. Program.3
1992 Programming and Verifying Real-Time Systems by Means of the Synchronous Data-Flow Language LUSTRE
abstract
The benefits of using a synchronous data-flow language for programming critical real-time systems are investigated. These benefits concern ergonomy (since the dataflow approach meets traditional description tools used in this domain) and ability to support formal design and verification methods. It is shown, using a simple example, how the language LUSTRE and its associated verification tool LESAR, can be used to design a program, to specify its critical properties, and to verify these properties. As the language LUSTRE and its uses have already been discussed in several papers, emphasis is put on program verification.>
Nicolas Halbwachs, Fabienne Lagnier, Christophe Ratel
IEEE Trans. Software Eng.1
1991 The synchronous data flow programming language LUSTRE
abstract
The authors describe LUSTRE, a data flow synchronous language designed for programming reactive systems-such as automatic control and monitoring systems-as 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 operators, dynamical sample-systems, etc.), and its synchronous interpretation makes it well suited for handling time in programs. Moreover, this synchronous interpretation allows it to be compiled into an efficient sequential program. The LUSTRE formalism is very similar to temporal logics. This allows the language to be used for both writing programs and expressing program properties, which results in an original program verification methodology.>
Nicolas Halbwachs, Paul Caspi, Pascal Raymond, Daniel Pilaud
Proc. IEEE1
1987 Lustre: A Declarative Language for Programming Synchronous Systems
abstract
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 which represents the control of the program. Formal rules for program transformation are also presented.
Paul Caspi, Daniel Pilaud, Nicolas Halbwachs, John Plaice
POPL3
1986 A Functional Model for Describing and Reasoning About Time Behaviour of Computing Systems
Paul Caspi, Nicolas Halbwachs
Acta Informatica2
1985 Outline of a Real Time Data Flow Language
Jean-Louis Bergerand, Paul Caspi, Daniel Pilaud, Nicolas Halbwachs, Eric Pilaud
RTSS4
1982 An Approach to Real Time Systems Modeling
Paul Caspi, Nicolas Halbwachs
ICDCS2
1982 Algebra of events: a model for parallel and real time systems
Paul Caspi, Nicolas Halbwachs
ICPP2
1978 Automatic Discovery of Linear Restraints Among Variables of a Program
abstract
The model of abstract interpretation of programs developed by Cousot and Cousot [2nd ISOP, 1976], Cousot and Cousot [POPL 1977] and Cousot [PhD thesis 1978] is applied to the static determination of linear equality or inequality invariant relations among numerical variables of programs.
Patrick Cousot, Nicolas Halbwachs
POPL2