English
Related papers

Related papers: A Practical Mode System for Recursive Definitions

200 papers

This paper formalizes and proves correct a compilation scheme for mutually-recursive definitions in call-by-value functional languages. This scheme supports a wider range of recursive definitions than previous methods. We formalize our…

Programming Languages · Computer Science 2010-02-01 Tom Hirschowitz , Xavier Leroy , J. B. Wells

Sound exhaustiveness checking of pattern-matching is an essential feature of functional programming languages, and OCaml supports it for GADTs. However this check is incomplete, in that it may fail to detect that a pattern can match no…

Programming Languages · Computer Science 2017-02-09 Jacques Garrigue , Jacques Le Normand

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…

Programming Languages · Computer Science 2018-12-13 Simon Colin , Rodolphe Lepigre , Gabriel Scherer

One of the most attractive features of untyped languages is the flexibility in term creation and manipulation. However, with such power comes the responsibility of ensuring the correctness of these operations. A solution is adding run-time…

Programming Languages · Computer Science 2017-10-17 Nataliia Stulova , José F. Morales , Manuel V. Hermenegildo

With one exception, our previous work on recurrence extraction and denotational semantics has focused on a source language that supports inductive types and structural recursion. The exception handles general recursion via an initial…

Programming Languages · Computer Science 2022-08-08 Norman Danner

Many semantical aspects of programming languages, such as their operational semantics and their type assignment calculi, are specified by describing appropriate proof systems. Recent research has identified two proof-theoretic features that…

Logic in Computer Science · Computer Science 2008-04-14 Andrew Gacek , Dale Miller , Gopalan Nadathur

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…

Programming Languages · Computer Science 2024-05-10 Nicolas Chataing , Stephen Dolan , Gabriel Scherer , Jeremy Yallop

We present a new type system with support for proofs of programs in a call-by-value language with control operators. The proof mechanism relies on observational equivalence of (untyped) programs. It appears in two type constructors, which…

Logic in Computer Science · Computer Science 2016-04-08 Rodolphe Lepigre

Recursive calls over recursive data are useful for generating probability distributions, and probabilistic programming allows computations over these distributions to be expressed in a modular and intuitive way. Exact inference is also…

Programming Languages · Computer Science 2023-03-28 David Chiang , Colin McDonald , Chung-chieh Shan

A circular program contains a data structure whose definition is self-referential or recursive. The use of such a definition allows efficient functional programs to be written and can avoid repeated evaluations and the creation of…

Data Structures and Algorithms · Computer Science 2022-06-28 Lloyd Allison

We recommend a programming construct - availability check - for programs that need to automatically adjust to presence or absence of segments of code. The idea is to check the existence of a valid definition before a function call is…

Programming Languages · Computer Science 2007-05-23 Joy Mukherjee , Srinidhi Varadarajan

We study the problem of automated hypersafety verification of infinite-state recursive programs. We propose an infinite class of product programs, specifically designed with recursion in mind, that reduce the hypersafety verification of a…

Programming Languages · Computer Science 2025-08-26 Ruotong Cheng , Azadeh Farzan

We propose a generalization of Categorial Grammar in which lexical categories are defined by means of recursive constraints. In particular, the introduction of relational constraints allows one to capture the effects of (recursive) lexical…

cmp-lg · Computer Science 2008-02-03 Gosse Bouma , Gertjan van Noord

The main way of analyzing the complexity of a program is that of extracting and solving a recurrence that expresses its running time in terms of the size of its input. We develop a method that automatically extracts such recurrences from…

Programming Languages · Computer Science 2019-11-13 G. A. Kavvos , Edward Morehouse , Daniel R. Licata , Norman Danner

Implementing a complex concept as an executable model in a strongly typed, purely functional language hits a sweet spot between mere simulation and formal specification. For research and education it is often desirable to enrich the…

Programming Languages · Computer Science 2020-08-31 Baltasar Trancón y Widemann , Markus Lepper

We introduce a new methodology based on refinement for testing the functional correctness of hardware and low-level software. Our methodology overcomes several major drawbacks of the de facto testing methodologies used in industry: (1) it…

Logic in Computer Science · Computer Science 2017-03-17 Mitesh Jain , Panagiotis Manolios

Performance-critical industrial applications, including large-scale program, network, and distributed system analyses, rely on fixed-point computations. The introduction of recursive common table expressions (CTEs) using the WITH RECURSIVE…

Programming Languages · Computer Science 2026-04-27 Anna Herlihy , Amir Shaikhha , Anastasia Ailamaki , Martin Odersky

Using standard domain-theoretic fixed-points, we present an approach for defining recursive functions that are formulated in monadic style. The method works both in the simple option monad and the state-exception monad of Isabelle/HOL's…

Logic in Computer Science · Computer Science 2010-12-23 Alexander Krauss

Recently, there has been an increasing interest in the bottom-up evaluation of the semantics of logic programs with complex terms. The presence of function symbols in the program may render the ground instantiation infinite, and finiteness…

Logic in Computer Science · Computer Science 2015-10-07 Marco Calautti , Sergio Greco , Francesca Spezzano , Irina Trubitsyna

Algebraic characterizations of the computational aspects of functions defined over the real numbers provide very effective tool to understand what computability and complexity over the reals, and generally over continuous spaces, mean. This…

Logic in Computer Science · Computer Science 2016-09-27 Olivier Bournez , Walid Gomaa , Emmanuel Hainry
‹ Prev 1 2 3 10 Next ›