Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Jacques Garrigue is active.

Publication


Featured researches published by Jacques Garrigue.


Information & Computation | 1999

Semi-explicit first-class polymorphism for ML

Jacques Garrigue; Didier Rémy

We propose a modest conservative extension to ML that allows semi-explicit first-class polymorphism while preserving the essential properties of type inference. In our proposal, the introduction of polymorphic types is fully explicit, that is, both introduction points and exact polymorphic types are to be specified. However, the elimination of polymorphic types is semi-implicit: only elimination points are to be specified as polymorphic types themselves are inferred. This extension is particularly useful in objective ML where polymorphism replaces subtyping.


symposium on principles of programming languages | 1994

The typed polymorphic label-selective λ-calculus

Jacques Garrigue; Hassan Aït-Kaci

Formal calculi of record structures have recently been a focus of active research. However, scarcely anyone has studied formally the dual notion—i.e., argument-passing to functions by keywords, and its harmonization with currying. We have. Recently, we introduced the label-selective λ-calculus, a conservative extension of λ-calculus that uses a labeling of abstractions and applications to perform unordered currying. In other words, it enables some form of commutation between arguments. This improves program legibility, thanks to the presence of labels, and efficiency, thanks to argument commuting. In this paper, we propose a simply typed version of the calculus, then extend it to one with ML-like polymorphic types. For the latter calculus, we establish the existence of principal types and we give an algorithm to compute them. Thanks to the fact that label-selective λ-calculus is a conservative extension of λ-calculus by adding numeric labels to stand for argument positions, its polymorphic typing provides us with a keyword argument-passing extension of ML obviating the need of records. In this context, conventional ML syntax can be seen as a restriction of the more general keyword-oriented syntax limited to using only implicit positions instead of keywords.


international symposium on functional and logic programming | 2004

Relaxing the value restriction

Jacques Garrigue

Restricting polymorphism to values is now the standard way to obtain soundness in ML-like programming languages with imperative features. While this solution has undeniable advantages over previous approaches, it forbids polymorphism in many cases where it would be sound. We use a subtyping based approach to recover part of this lost polymorphism, without changing the type algebra itself, and this has significant applications.


international symposium on theoretical aspects of computer software | 1997

Extending ML with Semi-Explicit Higher-Order Polymorphism

Jacques Garrigue; Didier Rémy

We propose a modest conservative extension to ML that allows semi-explicit higher-order polymorphism while preserving the essential properties of ML. In our proposal, the introduction of polymorphic types remains fully explicit, that is, both the introduction and the exact polymorphic type must be specified. However, the elimination of polymorphic types is now semi-implicit: only the elimination itself must be specified as the polymorphic type is inferred. This extension is particularly useful in Objective ML where polymorphism replaces subtyping.


foundations of software technology and theoretical computer science | 1993

Label-Selective lambda-Calculus Syntax and Confluence

Hassan Aït-Kaci; Jacques Garrigue

We introduce an extension of λ-calculus, called label-selective λ-calculus, in which arguments of functions are selected by labels. The set of labels includes numeric positions as well as symbolic keywords. While the latter enjoy free commutation, the former must comply with relative precedence in order to preserve currying. This extension of λ-calculus is conservative in the sense that when the set of labels is the singleton {1}, it coincides with λ-calculus. The main result of this paper is that the label-selective λ-calculus is confluent. In other words, argument selection and reduction commute.


international conference on functional programming | 1998

On the runtime complexity of type-directed unboxing

Yasuhiko Minamide; Jacques Garrigue

Avoiding boxing when representing native objects is essential for the efficient compilation of any programming language For polymorphic languages this task is difficult, but several schemes have been proposed that remove boxing on the basis of type information. Leroys type-directed unboxing transformation is one of them. One of its nicest properties is that it relies only on visible types, which makes it compatible with separate compilation. However it has been noticed that it is not safe both in terms of time and space complexity ---i.e. transforming a program may raise its complexity. We propose a refinement of this transformation, still relying only on visible types, and prove that it satisfies the safety condition for time complexity. The proof is an extension of the usual logical relation method, in which correctness and safety are proved simultaneously.


international conference on functional programming | 2006

Recursive modules for programming

Keiko Nakata; Jacques Garrigue

TheML module system is useful for building large-scale programs. The programmer can factor programs into nested and parameterized modules, and can control abstraction with signatures. Yet ML prohibits recursion between modules. As a result of this constraint, the programmer may have to consolidate conceptually separate components into a single module, intruding on modular programming. Introducing recursive modules is a natural way out of this predicament. Existing proposals, however, vary in expressiveness and verbosity. In this paper, we propose a type system for recursive modules, which can infer their signatures. Opaque signatures can also be given explicitly, to provide type abstraction either inside or outside the recursion. The type system is decidable, and is sound for a call-by-value semantics. We also present a solution to the expression problem, in support of our design choices.


conference on object-oriented programming systems, languages, and applications | 2011

A syntactic type system for recursive modules

Hyeonseung Im; Keiko Nakata; Jacques Garrigue; Sungwoo Park

A practical type system for ML-style recursive modules should address at least two technical challenges. First, it needs to solve the double vision problem, which refers to an inconsistency between external and internal views of recursive modules. Second, it needs to overcome the tension between practical decidability and expressivity which arises from the potential presence of cyclic type definitions caused by recursion between modules. Although type systems in previous proposals solve the double vision problem and are also decidable, they fail to typecheck common patterns of recursive modules, such as functor fixpoints, that are essential to the expressivity of the module system and the modular development of recursive modules. This paper proposes a novel type system for recursive modules that solves the double vision problem and typechecks common patterns of recursive modules including functor fixpoints. First, we design a type system with a type equivalence based on weak bisimilarity, which does not lend itself to practical implementation in general, but accommodates a broad range of cyclic type definitions. Then, we identify a practically implementable fragment using a type equivalence based on type normalization, which is expressive enough to typecheck typical uses of recursive modules. Our approach is purely syntactic and the definition of the type system is ready for use in an actual implementation.


asian symposium on programming languages and systems | 2010

A certified implementation of ML with structural polymorphism

Jacques Garrigue

The type system of Objective Caml has many unique features, which make ensuring the correctness of its implementation difficult. One of these features is structurally polymorphic types, such as polymorphic object and variant types, which have the extra specificity of allowing recursion. We implemented in Coq a certified interpreter for Core ML extended with structural polymorphism and recursion. Along with type soundness of evaluation, soundness and principality of type inference are also proved.


interactive theorem proving | 2015

Formalization of Error-Correcting Codes: From Hamming to Modern Coding Theory

Reynald Affeldt; Jacques Garrigue

By adding redundancy to transmitted data, error-correcting codes (ECCs) make it possible to communicate reliably over noisy channels. Minimizing redundancy and (de)coding time has driven much research, culminating with Low-Density Parity-Check (LDPC) codes. At first sight, ECCs may be considered as a trustful piece of computer systems because classical results are well-understood. But ECCs are also performance-critical so that new hardware calls for new implementations whose testing is always an issue. Moreover, research about ECCs is still flourishing with papers of ever-growing complexity. In order to provide means for implementers to perform verification and for researchers to firmly assess recent advances, we have been developing a formalization of ECCs using the SSReflect extension of the Coq proof-assistant. We report on the formalization of linear ECCs, duly illustrated with a theory about the celebrated Hamming codes and the verification of the sum-product algorithm for decoding LDPC codes.

Collaboration


Dive into the Jacques Garrigue's collaboration.

Top Co-Authors

Avatar

Xavier Leroy

École Normale Supérieure

View shared research outputs
Top Co-Authors

Avatar

Reynald Affeldt

National Institute of Advanced Industrial Science and Technology

View shared research outputs
Top Co-Authors

Avatar

Keiko Nakata

Tallinn University of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Damien Doligez

French Institute for Research in Computer Science and Automation

View shared research outputs
Top Co-Authors

Avatar

Akira Tanaka

National Institute of Advanced Industrial Science and Technology

View shared research outputs
Top Co-Authors

Avatar

Jérôme Vouillon

Centre national de la recherche scientifique

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Leo White

University of Cambridge

View shared research outputs
Researchain Logo
Decentralizing Knowledge