Recurrence Extraction for Functional Programs through Call-by-Push-Value (Extended Version)

11/11/2019
by   G. A. Kavvos, et al.
0

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 the syntax of higher-order recursive functional programs. The resulting recurrences, which are programs in a call-by-name language with recursion, explicitly compute the running time in terms of the size of the input. In order to achieve this in a uniform way that covers both call-by-name and call-by-value evaluation strategies, we use Call-by-Push-Value (CBPV) as an intermediate language. Finally, we use domain theory to develop a denotational cost semantics for the resulting recurrences.

READ FULL TEXT
research
06/26/2020

Denotational recurrence extraction for amortized analysis

A typical way of analyzing the time complexity of functional programs is...
research
07/25/2023

Complexity Analysis for Call-by-Value Higher-Order Rewriting

In this short paper, we consider a form of higher-order rewriting with a...
research
08/26/2017

The Unfolding Semantics of Functional Programs

The idea of using unfolding as a way of computing a program semantics ha...
research
02/17/2020

Denotational semantics as a foundation for cost recurrence extraction for functional languages

A standard method for analyzing the asymptotic complexity of a program i...
research
12/30/2018

A Probabilistic and Non-Deterministic Call-by-Push-Value Language

There is no known way of giving a domain-theoretic semantics to higher-o...
research
08/30/2018

Data-Driven Debugging for Functional Side Channels

Functional side channels arise when an attacker knows that the secret va...
research
12/09/2022

Extended Addressing Machines for PCF, with Explicit Substitutions

Addressing machines have been introduced as a formalism to construct mod...

Please sign up or login with your details

Forgot password? Click here to reset