Don't exhaust, don't waste

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Bianchini, Riccardo, Dagnino, Francesco, Giannini, Paola, Zucca, Elena
Formato: Preprint
Publicado: 2025
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866910062177419264
author Bianchini, Riccardo
Dagnino, Francesco
Giannini, Paola
Zucca, Elena
author_facet Bianchini, Riccardo
Dagnino, Francesco
Giannini, Paola
Zucca, Elena
contents We extend the semantics and type system of a lambda calculus equipped with common constructs to be "resource-aware". That is, the semantics keeps track of the usage of resources, and is stuck, besides in case of type errors, if either a needed resource is exhausted, or a provided resource would be wasted. In such way, the type system guarantees, besides standard soundness, that for well-typed programs there is a computation where no resource gets either exhausted or wasted. The extension is parametric on an arbitrary "grade algebra", modeling an assortment of possible usages, and does not require ad-hoc changes to the underlying language. To this end, the semantics needs to be formalized in big-step style; as a consequence, expressing and proving (resource-aware) soundness is challenging, and is achieved by applying recent techniques based on coinductive reasoning.
format Preprint
id arxiv_https___arxiv_org_abs_2507_13792
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Don't exhaust, don't waste
Bianchini, Riccardo
Dagnino, Francesco
Giannini, Paola
Zucca, Elena
Programming Languages
We extend the semantics and type system of a lambda calculus equipped with common constructs to be "resource-aware". That is, the semantics keeps track of the usage of resources, and is stuck, besides in case of type errors, if either a needed resource is exhausted, or a provided resource would be wasted. In such way, the type system guarantees, besides standard soundness, that for well-typed programs there is a computation where no resource gets either exhausted or wasted. The extension is parametric on an arbitrary "grade algebra", modeling an assortment of possible usages, and does not require ad-hoc changes to the underlying language. To this end, the semantics needs to be formalized in big-step style; as a consequence, expressing and proving (resource-aware) soundness is challenging, and is achieved by applying recent techniques based on coinductive reasoning.
title Don't exhaust, don't waste
topic Programming Languages
url https://arxiv.org/abs/2507.13792