English
Related papers

Related papers: Recurrence Extraction for Functional Programs thro…

200 papers

A central method for analyzing the asymptotic complexity of a functional program is to extract and then solve a recurrence that expresses evaluation cost in terms of input size. The relevant notion of input size is often specific to a…

Programming Languages · Computer Science 2015-06-08 Norman Danner , Daniel R. Licata , Ramyaa Ramyaa

A typical way of analyzing the time complexity of functional programs is to extract a recurrence expressing the running time of the program in terms of the size of its input, and then to solve the recurrence to obtain a big-O bound. For…

Programming Languages · Computer Science 2020-08-03 Joseph W. Cutler , Daniel R. Licata , Norman Danner

A standard informal method for analyzing the asymptotic complexity of a program is to extract a recurrence that describes its cost in terms of the size of its input, and then to compute a closed-form upper bound on that recurrence. We give…

Programming Languages · Computer Science 2022-08-09 Norman Danner , Daniel R. Licata

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

In this short paper, we consider a form of higher-order rewriting with a call-by-value evaluation strategy so as to model call-by-value programs. We briefly present a cost-size semantics to call-by-value rewriting: a class of algebraic…

Logic in Computer Science · Computer Science 2023-07-26 Cynthia Kop , Deivid Vale

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

In Programming by Example, a system attempts to infer a program from input and output examples, generally by searching for a composition of certain base functions. Performing a naive brute force search is infeasible for even mildly involved…

Artificial Intelligence · Computer Science 2012-09-19 Aditya Krishna Menon , Omer Tamuz , Sumit Gulwani , Butler Lampson , Adam Tauman Kalai

A well-established approach to reasoning about loops during program analysis is to capture the effect of a loop by extracting recurrences from the loop; these express relationships between the values of variables, or program properties such…

Logic in Computer Science · Computer Science 2021-09-13 Bishoksan Kafle , John P. Gallagher , Manuel V. Hermenegildo , Maximiliano Klemen , Pedro López-García , José F. Morales

We study the problem of automatically computing the time complexity of concurrent object-oriented programs. To determine this complexity we use intermediate abstract descriptions that record relevant information for the time analysis (cost…

Programming Languages · Computer Science 2015-11-17 Elena Giachino , Einar Broch Johnsen , Cosimo Laneve , Ka I Pun

We show how the complexity of higher-order functional programs can be analysed automatically by applying program transformations to a defunctionalized versions of them, and feeding the result to existing tools for the complexity analysis of…

Logic in Computer Science · Computer Science 2015-06-17 Martin Avanzini , Ugo Dal Lago , Georg Moser

Effect and coeffect tracking integrate many types of compile-time analysis, such as cost, liveness, or dataflow, directly into a language's type system. In this paper, we investigate the addition of effect and coeffect tracking to the type…

Programming Languages · Computer Science 2024-09-04 Cassia Torczon , Emmanuel Suárez Acevedo , Shubh Agrawal , Joey Velez-Ginorio , Stephanie Weirich

We introduce a probabilistic extension of Levy's Call-By-Push-Value. This extension consists simply in adding a " flipping coin " boolean closed atomic expression. This language can be understood as a major generalization of Scott's PCF…

Logic in Computer Science · Computer Science 2023-06-22 Thomas Ehrhard , Christine Tasson

We present a new method for inferring complexity properties for a class of programs in the form of flowcharts annotated with loop information. Specifically, our method can (soundly and completely) decide if computed values are polynomially…

Programming Languages · Computer Science 2016-07-11 Amir M. Ben-Amram , Aviad Pineles

In earlier work, we developed a modular approach for automatic complexity analysis of integer programs. However, these integer programs do not allow non-tail recursive calls or subprocedures. In this paper, we consider integer programs with…

Logic in Computer Science · Computer Science 2026-01-07 Nils Lommen , Jürgen Giesl

Levy's call-by-push-value is a comprehensive programming paradigm that combines elements from functional and imperative programming, supports computational effects and subsumes both call-by-value and call-by-name evaluation strategies. In…

Programming Languages · Computer Science 2025-03-11 Sergey Goncharov , Stelios Tsampas , Henning Urbat

Automatic static cost analysis infers information about the resources used by programs without actually running them with concrete data, and presents such information as functions of input data sizes. Most of the analysis tools for logic…

Programming Languages · Computer Science 2023-09-15 Maximiliano Klemen , Miguel Á. Carreira-Perpiñán , Pedro Lopez-Garcia

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…

Programming Languages · Computer Science 2020-12-24 Alban Reynaud , Gabriel Scherer , Jeremy Yallop

This paper proposes a thought experiment to search for efficient bounded algorithms of NPC problems by machine enumeration. The key contributions are: -- On Universal Turing Machines, a program's time complexity should be characterized as:…

Computational Complexity · Computer Science 2012-10-09 YuQian Zhou

Reasoning about the cost of executing programs is one of the fundamental questions in computer science. In the context of programming with probabilities, however, the notion of cost stops being deterministic, since it depends on the…

Programming Languages · Computer Science 2025-02-28 Pedro H. Azevedo de Amorim

Difference constraints have been used for termination analysis in the literature, where they denote relational inequalities of the form x' <= y + c, and describe that the value of x in the current state is at most the value of y in the…

Programming Languages · Computer Science 2015-08-21 Moritz Sinn , Florian Zuleger , Helmut Veith
‹ Prev 1 2 3 10 Next ›