Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Jérôme Vouillon

dblp:v/JeromeVouillon · also Jerome Vouillon · DBLP profile ↗
← Back
19ranked-venue papers
8as first author
0since 2021 · last 2016
—ORCID · none

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

Software engineering, systems software and programming languages · 17 · 7 first-authorArtificial intelligence and machine learning · 1 · 1 first-authorDatabases, data management, data science and information retrieval · 1Theory of computation · 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.

Software engineering, system software, and programming languages
10 papers
Programming languages and type systems · 56% Software maintenance and evolution · 44%
Theoretical computer science
5 papers
Logic in computer science · 60% Automata and formal languages · 25% Graph algorithms and graph theory · 16%

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

TopicWeightPapersLastEvidence papers
Software maintenance and evolution › software ecosystems
dependency management
0.222011
On software component co-installability · SIGSOFT FSE 2011
Managing the Complexity of Large Free and Open Source Package-Based Software Distributions · ASE 2006
Software maintenance and evolution
software dependencies
0.212013
On software component co-installability · ACM Trans. Softw. Eng. Methodol. 2013
Programming languages and type systems
type systems
0.132006
Polymorphic regular tree types and patterns · POPL 2006
Regular expression types for XML · ACM Trans. Program. Lang. Syst. 2005
Objective ML: A Simple Object-Oriented Extension of ML · POPL 1997
Programming languages and type systems
type theory
0.122007
A very modal model of a modern, major, general type system · POPL 2007
Semantic types: a fresh look at the ideal model for types · POPL 2004
Automata and formal languages
tree automata
0.122006
Polymorphic regular tree types and patterns · POPL 2006
Regular expression types for XML · ACM Trans. Program. Lang. Syst. 2005
Programming languages and type systems › type systems
modal type systems
0.112007
A very modal model of a modern, major, general type system · POPL 2007
Logic in computer science
modal logic
0.112007
A very modal model of a modern, major, general type system · POPL 2007
Logic in computer science
semantics
0.112007
A very modal model of a modern, major, general type system · POPL 2007
Programming languages and type systems › control structures
pattern matching
0.112006
Polymorphic regular tree types and patterns · POPL 2006
Software maintenance and evolution
software ecosystems
0.112006
Managing the Complexity of Large Free and Open Source Package-Based Software Distributions · ASE 2006
Programming languages and type systems
parametricity
0.112005
Recursive Polymorphic Types and Parametricity in an Operational Framework · LICS 2005
Programming languages and type systems › type theory
realizability model
0.112005
Recursive Polymorphic Types and Parametricity in an Operational Framework · LICS 2005
Programming languages and type systems › type systems › recursive types
recursive polymorphic types
0.112005
Recursive Polymorphic Types and Parametricity in an Operational Framework · LICS 2005
Programming languages and type systems › type systems
subtyping
0.112005
Regular expression types for XML · ACM Trans. Program. Lang. Syst. 2005
Programming languages and type systems › type systems
XML type systems
0.112005
Regular expression types for XML · ACM Trans. Program. Lang. Syst. 2005
Graph algorithms and graph theory
graph algorithms
0.012013
On software component co-installability · ACM Trans. Softw. Eng. Methodol. 2013
Logic in computer science › semantics
denotational semantics
0.012004
Semantic types: a fresh look at the ideal model for types · POPL 2004
Programming languages and type systems › object-oriented programming
object calculi
0.012001
Combining subsumption and binary methods: an object calculus with views · POPL 2001
Programming languages and type systems › object-oriented programming
multiple inheritance
0.011997
Objective ML: A Simple Object-Oriented Extension of ML · POPL 1997

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

graph-theoretic transformation · 0.5coq proof assistant · 0.5boolean satisfiability · 0.1subtyping · 0.1set-inclusion constraint solver · 0.1graph algorithms · 0.1constraint solving · 0.1type-directed approximation · 0.1top-down traversal · 0.1call-by-name lambda calculus · 0.1biorthogonality · 0.1orthogonality · 0.0fixpoint · 0.0
YearPublicationVenuePosition
2016 Eliom: A Core ML Language for Tierless Web Programming
Gabriel Radanne, Jérôme Vouillon, Vincent Balat
APLAS2
2015 A Historical Analysis of Debian Package Incompatibilities
abstract
Users and developers of software distributions are often confronted with installation problems due to conflicting packages. A prototypical example of this are the Linux distributions such as Debian. Conflicts between packages have been studied under different points of view in the literature, in particular for the Debian operating system, but little is known about how these package conflicts evolve over time. This article presents an extensive analysis of the evolution of package incompatibilities, spanning a decade of the life of the Debian stable and testing distributions for its most popular architecture, i386. Using the technique of survival analysis, this empirical study sheds some light on the origin and evolution of package incompatibilities, and provides the basis for building indicators that may be used to improve the quality of package-based distributions.
Maëlick Claes, Tom Mens, Roberto Di Cosmo, Jérôme Vouillon
MSR4
2014 Easing software component repository evolution
abstract
Modern software systems are built by composing components drawn from large repositories, whose size and complexity increase at a fast pace. Maintaining and evolving these software collections is a complex task, and a strict qualification process needs to be enforced. We studied in depth the Debian software repository, one of the largest and most complex existing ones, and we developed comigrate, an extremely efficient tool that is able to identify the largest sets of components that can migrate to the reference repository without violating its quality constraints. This tool outperforms significantly all existing tools, and provides detailed information that is crucial to understand the reasons why some components cannot migrate. Extensive validation on the Debian distribution has been performed. The core architecture of the tool is quite general, and can be easily adapted to other software repositories.
Jérôme Vouillon, Mehdi Dogguy, Roberto Di Cosmo
ICSE1
2014 From bytecode to JavaScript: the Js_of_ocaml compiler
abstract
SUMMARY We present the design and implementation of a compiler from OCaml bytecode to JavaScript. The compiler first translates the bytecode into a static single‐assignment intermediate representation on which optimizations are performed, before generating JavaScript. We believe that taking bytecode as an input instead of a high‐level language is a sensible choice. Virtual machines provide a very stable API. Such a compiler is thus easy to maintain. It is also convenient to use, and it can just be added to an existing installation of the development tools. Already‐compiled libraries can be used directly, with no need to reinstall anything. Finally, some virtual machines are the target of several languages. A bytecode to JavaScript compiler would make it possible to retarget all these languages to Web browsers at once. Copyright © 2013 John Wiley & Sons, Ltd.
Jérôme Vouillon, Vincent Balat
Softw. Pract. Exp.1
2013 Broken sets in software repository evolution
abstract
Modern software systems are built by composing components drawn from large repositories, whose size and complexity increase at a fast pace. Software systems built with components from a release of a repository should be seamlessly upgradeable using components from the next release. Unfortunately, users are often confronted with sets of components that were installed together, but cannot be upgraded together to the latest version from the new repository. Identifying these broken sets can be of great help for a quality assurance team, that could examine and fix these issues well before they reach the end user. Building on previous work on component co-installability, we show that it is possible to find these broken sets for any two releases of a component repository, computing extremely efficiently a concise representation of these upgrade issues, together with informative graphical explanations. A tool implementing the algorithm presented in this paper is available as free software, and is able to process the evolution between two major releases of the Debian GNU/Linux distribution in just a few seconds. These results make it possible to integrate seamlessly this analysis in a repository development process.
Jérôme Vouillon, Roberto Di Cosmo
ICSE1
2013 On software component co-installability
abstract
Modern software systems are built by composing components drawn from large repositories , whose size and complexity is increasing at a very fast pace. A fundamental challenge for the maintainability and the scalability of such software systems is the ability to quickly identify the components that can or cannot be installed together: this is the co-installability problem, which is related to boolean satisfiability and is known to be algorithmically hard. This article develops a novel theoretical framework, based on formally certified semantic preserving graph-theoretic transformations, that allows us to associate to each concrete component repository a much smaller one with a simpler structure, that we call strongly flat , with equivalent co-installability properties. This flat repository can be displayed in a way that provides a concise view of the co-installability issues in the original repository, or used as a basis for various algorithms related to co-installability, like the efficient computation of strong conflicts between components. The proofs contained in this work have been machine checked using the Coq proof assistant.
Jérôme Vouillon, Roberto Di Cosmo
ACM Trans. Softw. Eng. Methodol.1
2012 A Solution to the PoplMark Challenge Based on de Bruijn Indices
Jérôme Vouillon
J. Autom. Reason.1
2011 On software component co-installability
abstract
Modern software systems are built by composing components drawn from large repositories, whose size and complexity is increasing at a very fast pace. A fundamental challenge for the maintainability and the scalability of such software systems is the ability to quickly identify the components that can or cannot be installed together: this is the co-installability problem, which is related to boolean satisfiability and is known to be algorithmically hard. This paper develops a novel theoretical framework, based on formally certified. semantic preserving graph-theoretic transformations, that allows to associate to each concrete component repository a much smaller one with a simpler structure, but with equivalent co-installability properties. This smaller repository can be represented graphically, giving a concise view of the co-installability issues in the original repository, or used as a basis for various algorithms related to co-installability, like the efficient computation of strong conflicts between components. The proofs contained in this work have been machine checked in Coq.
Roberto Di Cosmo, Jérôme Vouillon
SIGSOFT FSE2
2009 Experience report: ocsigen, a web programming framework
abstract
The evolution of Web sites towards very dynamic applications makes it necessary to reconsider current Web programming technologies. We believe that Web development would benefit greatly from more abstract paradigms and that a more semantical approach would result in huge gains in expressiveness. In particular, functional programming provides a really elegant solution to some important Web interaction problems, but few frameworks take advantage of it.
Vincent Balat, Jérôme Vouillon, Boris Yakobowski
ICFP2
2008 Improving the Quality of GNU/Linux Distributions
abstract
The widespread adoption of Free and Open Source Software (FOSS) has lead to a freer and more agile marketplace where there is a higher number of components that can be used to build systems in many original and often unforeseen ways. One of the most prominent examples of complex systems built with FOSS components are GNU/Linux-based distributions. In this paper we present some tools that aim at helping distribution editors with maintaining the huge package bases associated with these distributions, and improving their quality, by detecting errors and inconsistencies in an effective, fast and automatic way.
Jaap Boender, Roberto Di Cosmo, Jérôme Vouillon, Berke Durak, Fabio Mancinelli
COMPSAC3
2007 A very modal model of a modern, major, general type system
abstract
International audience
Andrew W. Appel, Paul-André Melliès, Christopher D. Richards, Jérôme Vouillon
POPL4
2006 Managing the Complexity of Large Free and Open Source Package-Based Software Distributions
abstract
The widespread adoption of free and open source software (FOSS) in many strategic contexts of the information technology society has drawn the attention on the issues regarding how to handle the complexity of assembling and managing a huge number of (packaged) components in a consistent and effective way. FOSS distributions (and in particular GNU/Linux-based ones) have always provided tools for managing the tasks of installing, removing and upgrading the (packaged) components they were made of While these tools provide a (not always effective) way to handle these tasks on the client side, there is still a lack of tools that could help the distribution editors to maintain, on the server side, large and high-quality distributions. In this paper we present our research whose main goal is to fill this gap: we show our approach, the tools we have developed and their application with experimental results. Our contribution provides an effective and automatic way to support distribution editors in handling those issues that were, until now, mostly addressed using ad-hoc tools and manual techniques
Fabio Mancinelli, Jaap Boender, Roberto Di Cosmo, Jérôme Vouillon, Berke Durak, Xavier Leroy, Ralf Treinen
ASE4
2006 Polymorphic regular tree types and patterns
abstract
We propose a type system based on regular tree grammars, where algebraic datatypes are interpreted in a structural way. Thus, the same constructors can be reused for different types and a flexible subtyping relation can be defined between types, corresponding to the inclusion of their semantics. For instance, one can define a type for lists and a subtype of this type corresponding to lists of even length. Patterns are simply types annotated with binders. This provides a generalization of algebraic patterns with the ability of matching arbitrarily deep in a value. Our main contribution, compared to languages such as XDuce and CDuce, is that we are able to deal with both polymorphism and function types.
Jérôme Vouillon
POPL1
2005 Recursive Polymorphic Types and Parametricity in an Operational Framework
abstract
We construct a realizability model of recursive polymorphic types, starting from an untyped language of terms and contexts. An orthogonality relation e/spl perp//spl pi/ indicates when a term e and a context /spl pi/ may be safely combined in the language. Types are interpreted as sets of terms closed by biorthogonality. Our main result states that recursive types are approximated by converging sequences of interval types. Our proof is based on a "type-directed" approximation technique, which departs from the "language-directed" approximation technique developed by MacQueen, Plotkin and Sethi in the ideal model. We thus keep the language elementary (a call-by-name /spl lambda/-calculus) and unstratified (no typecase, no reduction labels). We also include a short account of parametricity, based on an orthogonality relation between quadruples of terms and contexts.
Paul-André Melliès, Jérôme Vouillon
LICS2
2005 Regular expression types for XML
abstract
We propose regular expression types as a foundation for statically typed XML processing languages. Regular expression types, like most schema languages for XML, introduce regular expression notations such as repetition (*), alternation (|), etc., to describe XML documents. The novelty of our type system is a semantic presentation of subtyping, as inclusion between the sets of documents denoted by two types. We give several examples illustrating the usefulness of this form of subtyping in XML processing.The decision problem for the subtype relation reduces to the inclusion problem between tree automata, which is known to be EXPTIME-complete. To avoid this high complexity in typical cases, we develop a practical algorithm that, unlike classical algorithms based on determinization of tree automata, checks the inclusion relation by a top-down traversal of the original type expressions. The main advantage of this algorithm is that it can exploit the property that type expressions being compared often share portions of their representations. Our algorithm is a variant of Aiken and Murphy's set-inclusion constraint solver, to which are added several new implementation techniques, correctness proofs, and preliminary performance measurements on some small programs in the domain of typed XML processing.
Haruo Hosoya, Jérôme Vouillon, Benjamin C. Pierce
ACM Trans. Program. Lang. Syst.2
2004 Semantic types: a fresh look at the ideal model for types
abstract
We present a generalization of the ideal model for recursive polymorphic types. Types are defined as sets of terms instead of sets of elements of a semantic domain. Our proof of the existence of types (computed by fixpoint of a typing operator) does not rely on metric properties, but on the fact that the identity is the limit of a sequence of projection terms. This establishes a connection with the work of Pitts on relational properties of domains. This also suggests that ideals are better understood as closed sets of terms defined by orthogonality with respect to a set of contexts.
Jérôme Vouillon, Paul-André Melliès
POPL1
2001 Combining subsumption and binary methods: an object calculus with views
abstract
We presen t an object-oriented calculus whic hallows arbitrary hiding of methods in protot ypes, even in the presence of binary methods and friend functions. This combination of features permits complete control of the in terface a class exposes to the remainder of a program (which is of key importance for program readability, security and ease of maintenance), while still allowing complex in teractions with other classes belonging to the same module or softw are component.This result is made possible by the use of views. A view is a name that specifies an in terface to an object. A set of views is attached to each object and a method can be invoked either directly or via a view of the object.
Jérôme Vouillon
POPL1
2000 Regular expression types for XML
abstract
We propose regular expression types as a foundation for XML processing languages. Regular expression types are a natural generalization of Document Type Definitions (DTDs), describing structures in XML documents using regular expression operators (i.e., *, ?, |, etc.) and supporting a simple but powerful notion of subtyping.The decision problem for the subtype relation is EXPTIME-hard, but it can be checked quite efficiently in many cases of practical interest. The subtyping algorithm developed here is a variant of Aiken and Murphy's set-inclusion constraint solver, to which are added several optimizations and two new properties: (1) our algorithm is provably complete, and (2) it allows a useful "subtagging" relation between nodes with different labels in XML trees.
Haruo Hosoya, Jérôme Vouillon, Benjamin C. Pierce
ICFP2
1997 Objective ML: A Simple Object-Oriented Extension of ML
abstract
Objective ML is a small practical extension of ML with objects and toplevel classes. It is fully compatible with ML; its type system is based on ML polymorphism, record types with polymorphic access, and a better treatment of type abbreviations. Objective ML allows for most features of object-oriented languages including multiple inheritance, methods returning self and binary methods as well as parametric classes. This demonstrates that objects can be added to strongly typed languages based on ML polymorphism.
Didier Rémy, Jérôme Vouillon
POPL2