Abstract Operational Methods for Call-by-Push-Value

Fuente: arXiv
Salvato in:
Dettagli Bibliografici
Autori principali: Goncharov, Sergey, Tsampas, Stelios, Urbat, Henning
Natura: Preprint
Pubblicazione: 2024
Soggetti:
Accesso online:
Tags: Aggiungi Tag
Nessun Tag, puoi essere il primo ad aggiungerne!!
_version_ 1866929748194623488
author Goncharov, Sergey
Tsampas, Stelios
Urbat, Henning
author_facet Goncharov, Sergey
Tsampas, Stelios
Urbat, Henning
contents 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 the present work, we develop modular methods to reason about program equivalence in call-by-push-value, and in fine-grain call-by-value, which is a popular lightweight call-by-value sublanguage of the former. Our approach is based on the fundamental observation that presheaf categories of sorted sets are suitable universes to model call-by-(push)-value languages, and that natural, coalgebraic notions of program equivalence such as applicative similarity and logical relations can be developed within. Starting from this observation, we formalize fine-grain call-by-value and call-by-push-value in the higher-order abstract GSOS framework, reduce their key congruence properties to simple syntactic conditions by leveraging existing theory and argue that introducing changes to either language incurs minimal proof overhead.
format Preprint
id arxiv_https___arxiv_org_abs_2410_17045
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Abstract Operational Methods for Call-by-Push-Value
Goncharov, Sergey
Tsampas, Stelios
Urbat, Henning
Programming Languages
Logic in Computer Science
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 the present work, we develop modular methods to reason about program equivalence in call-by-push-value, and in fine-grain call-by-value, which is a popular lightweight call-by-value sublanguage of the former. Our approach is based on the fundamental observation that presheaf categories of sorted sets are suitable universes to model call-by-(push)-value languages, and that natural, coalgebraic notions of program equivalence such as applicative similarity and logical relations can be developed within. Starting from this observation, we formalize fine-grain call-by-value and call-by-push-value in the higher-order abstract GSOS framework, reduce their key congruence properties to simple syntactic conditions by leveraging existing theory and argue that introducing changes to either language incurs minimal proof overhead.
title Abstract Operational Methods for Call-by-Push-Value
topic Programming Languages
Logic in Computer Science
url https://arxiv.org/abs/2410.17045