Recurrence Extraction for Functional Programs through Call-by-Push-Value
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.
Wed 22 JanDisplayed time zone: Saskatchewan, Central America change
11:45 - 12:30
|Recurrence Extraction for Functional Programs through Call-by-Push-Value|
Alex Kavvos Aarhus University, Edward Morehouse Wesleyan University, Dan Licata Wesleyan University, Norman Danner Wesleyan UniversityLink to publication DOI File Attached
|Liquidate Your Assets: Reasoning About Resource Usage in Liquid Haskell|
Martin Adam Thomas Handley University of Nottingham, Niki Vazou IMDEA Software Institute, Graham Hutton University of Nottingham, UKLink to publication DOI Media Attached File Attached