Treffer: Comparing functional programs, or how to put λ-terms back in order ; Comparer des programmes fonctionnels, ou comment remettre les λ-termes en ordre ; Comparing functional programs, or how to put λ-terms back in order: A theory of program equivalences and preorders through meaning, evaluation orders and costs ; Comparer des programmes fonctionnels, ou comment remettre les λ-termes en ordre: Une théorie des équivalences et préordres de programmes, à travers les notions de sémantique, ordre d’évaluation et coût

Title:
Comparing functional programs, or how to put λ-terms back in order ; Comparer des programmes fonctionnels, ou comment remettre les λ-termes en ordre ; Comparing functional programs, or how to put λ-terms back in order: A theory of program equivalences and preorders through meaning, evaluation orders and costs ; Comparer des programmes fonctionnels, ou comment remettre les λ-termes en ordre: Une théorie des équivalences et préordres de programmes, à travers les notions de sémantique, ordre d’évaluation et coût
Contributors:
École polytechnique (X), Institut Polytechnique de Paris (IP Paris), Université Paris Cité (UPCité), Institut de Recherche en Informatique Fondamentale (IRIF (UMR_8243)), Centre National de la Recherche Scientifique (CNRS)-Université Paris Cité (UPCité), Laboratoire d'informatique de l'École polytechnique Palaiseau (LIX), Institut Polytechnique de Paris (IP Paris)-Institut Polytechnique de Paris (IP Paris)-Centre National de la Recherche Scientifique (CNRS), Automatisation et ReprésenTation: fOndation du calcUl et de la déducTion (PARTOUT), Institut Polytechnique de Paris (IP Paris)-Institut Polytechnique de Paris (IP Paris)-Centre National de la Recherche Scientifique (CNRS)-École polytechnique (X), Institut Polytechnique de Paris (IP Paris)-Institut Polytechnique de Paris (IP Paris)-Centre National de la Recherche Scientifique (CNRS)-Centre Inria de l'Institut Polytechnique de Paris, Centre Inria de Saclay, Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria)-Centre Inria de Saclay, Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria), Action Exploratoire INRIA CANofGAS, Institut Polytechnique de Paris, Beniamino Accattoli
Source:
https://theses.hal.science/tel-05407883 ; Computer Science [cs]. Institut Polytechnique de Paris, 2025. English. ⟨NNT : 2025IPPAX101⟩.
Publisher Information:
CCSD
Publication Year:
2025
Document Type:
Dissertation doctoral or postdoctoral thesis
Language:
English
Relation:
NNT: 2025IPPAX101
Rights:
http://creativecommons.org/licenses/by-nc/ ; info:eu-repo/semantics/OpenAccess
Accession Number:
edsbas.54FAC53E
Database:
BASE

Weitere Informationen

Program equivalence is a central topic in the study of programming languages. Certifying that compiler transformations do not change the semantics of a program is needed to formally prove correct compilers.This thesis aims at further developing the theory of program equivalences for the untyped pure λ-calculus, on several viewpoints. We suggest to switch from program equivalences to program preorders, which is a usual switch in the study of programming languages but perhaps not something fully accepted at the level of the λ-calculus. We show that some central concepts in the λ-calculus may be reformulated to simple properties on preorders for λ-terms.Contextual equivalences are the most natural notion of comparison for programs: contextual comparison is about testing programs in any execution environment and checking that they behave in a similar way. This equivalence is mostly unusable to provide proof of equivalences for expressive enough programming languages, because of the universal quantification over execution environments---akin to testing for all possible inputs.We introduce a quantitative refinement of contextual equivalence, trying to obtain a cost-sensitive program equivalence as natural as contextual comparison. Interaction equivalence tests programs in any execution environment, checks that their behavior is similar but also takes into account the number of communications (or interactions) between the program and its environment.Finally, we explore program equivalences for another evaluation paradigm, namely call-by-value. Call-by-value is more efficient and closer to the actual evaluation mechanism used by programming languages despite it being less studied than the original evaluation of the λ-calculus. It leads to a wide range of program equivalences, usually studied with effects added to the language. We study it here in a pure setting and show that call-by-value is a rich framework with many different notions of equivalences.We provide a unifying view of all these program equivalences and ...