Bruno Barras
École Polytechnique
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Bruno Barras.
foundations of software science and computation structure | 2008
Bruno Barras; Bruno Bernardo
In this paper, we show how Miquels Implicit Calculus of Constructions (ICC) can be used as a programming language featuring dependent types. Since this system has an undecidable type-checking, we introduce a more verbose variant, called ICC* which fixes this issue. Datatypes and program specifications are enriched with logical assertions (such as preconditions, postconditions, invariants) and programs are decorated with proofs of those assertions. The point of using ICC* rather than the Calculus of Constructions (the core formalism of the Coq proof assistant) is that all of the static information (types and proof objects) is transparent, in the sense that it does not affect the computational behavior. This is concretized by a built-in extraction procedure that removes this static information. We also illustrate the main features of ICC* on classical examples of dependently typed programs.
principles and practice of declarative programming | 2017
Beniamino Accattoli; Bruno Barras
Abstract machines for functional languages rely on the notion of environment, a data structure storing the previously encountered and delayed beta-redexes. This paper provides a close analysis of the different approaches to define and implement environments. There are two main styles. The most common one is to have many local environments, one for every piece of code in the data structures of the machine. A minority of works instead uses a single global environment. Up to now, the two approaches have been considered equivalent, in particular at the level of the complexity of the overhead: they have both been used to obtain bilinear bounds, that is, linear in the number of beta steps and in the size of the initial term. We start by having a close look on global environments and how to implement them. Then we show that local environments admit implementations that are asymptotically faster than global environments, lowering the dependency from the size of the initial term from linear to logarithmic, thus improving the bounds in the literature. We then focus on a third style, split environments, that are in between local and global ones, and have the benefits of both. Finally, we provide a call-by-need machine with split environments for which we prove the new improved bounds on the overhead.
arXiv: Logic in Computer Science | 2013
Bruno Barras; Lourdes del Carmen González Huesca; Hugo Herbelin; Yann Régis-Gianas; Enrico Tassi; Makarius Wenzel; Burkhart Wolff
Interactive theorem proving is a technology of fundamental importance for mathematics and computer-science. It is based on expressive logical foundations and implemented in a highly trustable way. Applications include huge mathematical proofs and semi-automated verifications of complex software systems. Interactive development of larger and larger proofs increases the demand for computing power, which means explicit parallelism on current multicore hardware [6].
asian symposium on programming languages and systems | 2017
Beniamino Accattoli; Bruno Barras
The model behind functional programming languages is the closed \(\lambda \) -calculus, that is, the fragment of the \(\lambda \)-calculus where evaluation is weak (i.e. out of abstractions) and terms are closed. It is well-known that the number of \(\beta \) (i.e. evaluation) steps is a reasonable cost model in this setting, for all natural evaluation strategies (call-by-name/value/need). In this paper we try to close the gap between the closed \(\lambda \)-calculus and actual languages, by considering an extension of the \(\lambda \)-calculus with pattern matching. It is straightforward to prove that \(\beta \) plus matching steps provide a reasonable cost model. What we do then is finer: we show that \(\beta \) steps only, without matching steps, provide a reasonable cost model also in this extended setting—morally, pattern matching comes for free, complexity-wise. The result is proven for all evaluation strategies (name/value/need), and, while the proof itself is simple, the problem is shown to be subtle. In particular we show that qualitatively equivalent definitions of call-by-need may behave very differently.
INRIA | 1997
Bruno Barras; Samuel Boutin; Cristina Cornes; Judicaël Courant; Jean-Christophe Filliâtre; Eduardo Giménez; Hugo Herbelin; Gérard P. Huet; César Muñoz; Chetan Murthy; Catherine Parent; Christine Paulin-Mohring; Amokrane Saïbi; Benjamin Werner
Archive | 2013
Bruno Barras; Yves Bertot; Pierre Boutillier; Xavier Clerc; Pierre Courtieu; Maxime Dénès; Julien Forest; Stéphane Glondu; Benjamin Grégoire; Vincent Gross; Hugo Herbelin; Pierre Letouzey; Assia Mahboubi; Jean-Marc Notin; Christine Paulin; Pierre-Marie Pédrot; Loïc Pottier; Matthias Puech; Yann Régis-Gianas; François Ripault; Matthieu Sozeau; Arnaud Spiwack; Pierre-Yves Strub; Enrico Tassi; Benjamin Werner
Archive | 2009
Assia Mahboubi; Salil Joshi; Pierre-Yves Strub; Eric Biaggioli; Benjamin Werner; Jean-Marc Notin; Gilles Dowek; Murdoch James Gabbay; Dominic P. Mulligan; Cyril Cohen; Germain Faure; Bruno Barras
Archive | 2009
Bruno Barras; Bruno Bernardo; Mathieu Boespflug; Denis Cousineau; Gilles Dowek; Guillaume Burel; Arnaud Spiwack; Germain Faure; Benjamin Werner
Archive | 2008
Bruno Barras; Bruno Bernardo
Archive | 2006
Hugo Herbelin; Bruno Barras; Julien Narboux; Florent Kirchner; Gilles Dowek; Pierre-Yves Strub; Jean-Pierre Jouannaud; César A. Muñoz
Collaboration
Dive into the Bruno Barras's collaboration.
French Institute for Research in Computer Science and Automation
View shared research outputs