Skip to main content

Showing 1–18 of 18 results for author: Scherer, G

Searching in archive cs. Search in all archives.
.
  1. Unboxed data constructors -- or, how cpp decides a halting problem

    Authors: Nicolas Chataing, Stephen Dolan, Gabriel Scherer, Jeremy Yallop

    Abstract: We propose a new language feature for ML-family languages, the ability to selectively unbox certain data constructors, so that their runtime representation gets compiled away to just the identity on their argument. Unboxing must be statically rejected when it could introduce confusions, that is, distinct values with the same representation. We discuss the use-case of big numbers, where unboxin… ▽ More

    Submitted 9 May, 2024; v1 submitted 13 November, 2023; originally announced November 2023.

  2. Coqlex: Generating Formally Verified Lexers

    Authors: Wendlasida Ouedraogo, Gabriel Scherer, Lutz Strassburger

    Abstract: A compiler consists of a sequence of phases going from lexical analysis to code generation. Ideally, the formal verification of a compiler should include the formal verification of each component of the tool-chain. An example is the CompCert project, a formally verified C compiler, that comes with associated tools and proofs that allow to formally verify most of those components. However, some com… ▽ More

    Submitted 21 June, 2023; originally announced June 2023.

    Journal ref: The Art, Science, and Engineering of Programming, 2024, Vol. 8, Issue 1, Article 3

  3. Debootstrap** without Archeology: Stacked Implementations in Camlboot

    Authors: Nathanaëlle Courant, Julien Lepiller, Gabriel Scherer

    Abstract: Context: It is common for programming languages that their reference implementation is implemented in the language itself. This requires a "bootstrap": a copy of a previous version of the implementation is provided along with the sources, to be able to run the implementation itself. Those bootstrap files are opaque binaries; they could contain bugs, or even malicious changes that could reproduce t… ▽ More

    Submitted 18 February, 2022; originally announced February 2022.

    Journal ref: The Art, Science, and Engineering of Programming, 2022, Vol. 6, Issue 3, Article 13

  4. arXiv:2102.09823  [pdf, other

    cs.PL

    Tail Modulo Cons

    Authors: Frédéric Bour, Basile Clément, Gabriel Scherer

    Abstract: OCaml function calls consume space on the system stack. Operating systems set default limits on the stack space which are much lower than the available memory. If a program runs out of stack space, they get the dreaded "Stack Overflow" exception -- they crash. As a result, OCaml programmers have to be careful, when they write recursive functions, to remain in the so-called _tail-recursive_ fragmen… ▽ More

    Submitted 19 February, 2021; originally announced February 2021.

  5. arXiv:1908.09123  [pdf, other

    cs.PL cs.LO

    Dependent Pearl: Normalization by realizability

    Authors: Pierre-Évariste Dagand, Lionel Rieg, Gabriel Scherer

    Abstract: For those of us who generally live in the world of syntax, semantic proof techniques such as reducibility, realizability or logical relations seem somewhat magical despite -- or perhaps due to -- their seemingly unreasonable effectiveness. Why do they work? At which point in the proof is "the real work" done? Ho** to build a programming intuition of these proofs, we implement a normalization a… ▽ More

    Submitted 27 July, 2020; v1 submitted 24 August, 2019; originally announced August 2019.

  6. Functional programming with lambda-tree syntax

    Authors: Ulysse Gérard, Dale Miller, Gabriel Scherer

    Abstract: We present the design of a new functional programming language, MLTS, that uses the lambda-tree syntax approach to encoding bindings appearing within data structures. In this approach, bindings never become free nor escape their scope: instead, binders in data structures are permitted to move to binders within programs. The design of MLTS includes additional sites within programs that directly sup… ▽ More

    Submitted 9 August, 2019; originally announced August 2019.

    Comments: PPDP 2019

  7. Proceedings ML Family / OCaml Users and Developers workshops

    Authors: Sam Lindley, Gabriel Scherer

    Abstract: This volume contains the joint post-proceedings of the 2017 editions of the ML Family Workshop and the OCaml Users and Developers Workshop which took place in Oxford, UK, September 2017, and which were colocated with the ICFP 2017 conference.

    Submitted 14 May, 2019; originally announced May 2019.

    ACM Class: F.3.2; F.3.3; D.3.3; D.3.4

    Journal ref: EPTCS 294, 2019

  8. A Practical Mode System for Recursive Definitions

    Authors: Alban Reynaud, Gabriel Scherer, Jeremy Yallop

    Abstract: In call-by-value languages, some mutually-recursive value definitions can be safely evaluated to build recursive functions or cyclic data structures, but some definitions (let rec x = x + 1) contain vicious circles and their evaluation fails at runtime. We propose a new static analysis to check the absence of such runtime failures. We present a set of declarative inference rules, prove its sound… ▽ More

    Submitted 23 December, 2020; v1 submitted 20 November, 2018; originally announced November 2018.

    Comments: Author version of POPL'21 article. 29 pages + Appendices

  9. arXiv:1811.02300  [pdf, ps, other

    cs.PL

    Unboxing Mutually Recursive Type Definitions in OCaml

    Authors: Simon Colin, Rodolphe Lepigre, Gabriel Scherer

    Abstract: In modern OCaml, single-argument datatype declarations (variants with a single constructor, records with a single field) can sometimes be `unboxed'. This means that their memory representation is the same as their single argument (omitting the variant or record constructor and an indirection), thus achieving better time and memory efficiency. However, in the case of generalized/guarded algebraic… ▽ More

    Submitted 12 December, 2018; v1 submitted 6 November, 2018; originally announced November 2018.

    Comments: accepted at JFLA 2019

  10. Merlin: A Language Server for OCaml (Experience Report)

    Authors: Frédéric Bour, Thomas Refis, Gabriel Scherer

    Abstract: We report on the experience of develo** Merlin, a language server for the OCaml programming language in development since 2013. Merlin is a daemon that connects to your favourite text editor and provides services that require a fine-grained understanding of the programming language syntax and static semantics: instant feedback on warnings and errors, autocompletion, `type of the code under the c… ▽ More

    Submitted 2 October, 2018; v1 submitted 17 July, 2018; originally announced July 2018.

  11. Correctness of Speculative Optimizations with Dynamic Deoptimization

    Authors: Olivier Flückiger, Gabriel Scherer, Ming-Ho Yee, Aviral Goel, Amal Ahmed, Jan Vitek

    Abstract: High-performance dynamic language implementations make heavy use of speculative optimizations to achieve speeds close to statically compiled languages. These optimizations are typically performed by a just-in-time compiler that generates code under a set of assumptions about the state of the program and its environment. In certain cases, a program may execute code compiled under assumptions that a… ▽ More

    Submitted 15 November, 2017; v1 submitted 8 November, 2017; originally announced November 2017.

    Journal ref: Proceedings of the ACM on Programming Languages (POPL 2018)

  12. arXiv:1710.10385  [pdf, other

    cs.PL

    Capturing the Future by Replaying the Past

    Authors: James Koppel, Gabriel Scherer, Armando Solar-Lezama

    Abstract: Delimited continuations are the mother of all monads! So goes the slogan inspired by Filinski's 1994 paper, which showed that delimited continuations can implement any monadic effect, letting the programmer use an effect as easily as if it was built into the language. It's a shame that not many languages have delimited continuations. Luckily, exceptions and state are also the mother of all monad… ▽ More

    Submitted 5 July, 2018; v1 submitted 28 October, 2017; originally announced October 2017.

  13. arXiv:1707.04984  [pdf, other

    cs.PL

    FabULous Interoperability for ML and a Linear Language

    Authors: Gabriel Scherer, Max New, Nick Rioux, Amal Ahmed

    Abstract: Instead of a monolithic programming language trying to cover all features of interest, some programming systems are designed by combining together simpler languages that cooperate to cover the same feature space. This can improve usability by making each part simpler than the whole, but there is a risk of abstraction leaks from one language to another that would break expectations of the users fam… ▽ More

    Submitted 12 April, 2018; v1 submitted 16 July, 2017; originally announced July 2017.

    Comments: Published in Fossacs 2018

    MSC Class: 68N15; 68N30 ACM Class: F.3.1; F.3.2; F.3.3

  14. arXiv:1610.01213  [pdf, other

    cs.PL cs.LO

    Deciding equivalence with sums and the empty type

    Authors: Gabriel Scherer

    Abstract: The logical technique of focusing can be applied to the $λ$-calculus; in a simple type system with atomic types and negative type formers (functions, products, the unit type), its normal forms coincide with $βη$-normal forms. Introducing a saturation phase gives a notion of quasi-normal forms in presence of positive types (sum types and the empty type). This rich structure let us prove the decidab… ▽ More

    Submitted 8 November, 2016; v1 submitted 4 October, 2016; originally announced October 2016.

    MSC Class: 03F03; 68N18 ACM Class: F.3.3; F.4.1

  15. arXiv:1312.0018  [pdf, ps, other

    cs.PL

    Tracking Data-Flow with Open Closure Types

    Authors: Gabriel Scherer, Jan Hoffmann

    Abstract: Type systems hide data that is captured by function closures in function types. In most cases this is a beneficial design that favors simplicity and compositionality. However, some applications require explicit information about the data that is captured in closures. This paper introduces open closure types, that is, function types that are decorated with type contexts. They are used to track data… ▽ More

    Submitted 29 November, 2013; originally announced December 2013.

    Comments: Logic for Programming Artificial Intelligence and Reasoning (2013)

  16. arXiv:1301.2903  [pdf, ps, other

    cs.PL

    GADTs meet subty**

    Authors: Gabriel Scherer, Didier Rémy

    Abstract: While generalized algebraic datatypes (\GADTs) are now considered well-understood, adding them to a language with a notion of subty** comes with a few surprises. What does it mean for a \GADT parameter to be covariant? The answer turns out to be quite subtle. It involves fine-grained properties of the subty** relation that raise interesting design questions. We allow variance annotations in \G… ▽ More

    Submitted 14 January, 2013; originally announced January 2013.

    Comments: arXiv admin note: substantial text overlap with arXiv:1210.5935

    Journal ref: 22nd European Symposium on Programming (ESOP), Rome : Italy (2013)

  17. arXiv:1210.5935  [pdf, ps, other

    cs.PL

    GADT meet Subty**

    Authors: Gabriel Scherer, Didier Rémy

    Abstract: While generalized abstract datatypes (GADT) are now considered well-understood, adding them to a language with a notion of subty** comes with a few surprises. What does it mean for a GADT parameter to be covariant? The answer turns out to be quite subtle. It involves fine-grained properties of the subty** relation that raise interesting design questions. We allow variance annotations in GADT d… ▽ More

    Submitted 22 October, 2012; originally announced October 2012.

    Comments: No. RR-8114 (2012)

  18. On Irrelevance and Algorithmic Equality in Predicative Type Theory

    Authors: Andreas Abel, Gabriel Scherer

    Abstract: Dependently typed programs contain an excessive amount of static terms which are necessary to please the type checker but irrelevant for computation. To separate static and dynamic code, several static analyses and type systems have been put forward. We consider Pfenning's type theory with irrelevant quantification which is compatible with a type-based notion of equality that respects eta-laws. W… ▽ More

    Submitted 23 March, 2012; v1 submitted 21 March, 2012; originally announced March 2012.

    Comments: 36 pages, superseds the FoSSaCS 2011 paper of the first author, titled "Irrelevance in Type Theory with a Heterogeneous Equality Judgement"

    ACM Class: F.4.1

    Journal ref: Logical Methods in Computer Science, Volume 8, Issue 1 (March 27, 2012) lmcs:1045