A verified framework for higher-order uncurrying optimizations - Archive ouverte HAL Accéder directement au contenu
Article Dans Une Revue Higher-Order and Symbolic Computation Année : 2009

A verified framework for higher-order uncurrying optimizations

Résumé

Function uncurrying is an important optimization for the efficient execution of functional programming languages. This optimization replaces curried functions by uncur-ried, multiple-argument functions, while preserving the ability to evaluate partial applications. First-order uncurrying (where curried functions are optimized only in the static scopes of their definitions) is well understood and implemented by many compilers, but its extension to higher-order functions (where uncurrying can also be performed on parameters and results of higher-order functions) is challenging. This article develops a generic framework that expresses higher-order uncurrying optimizations as type-directed insertion of coercions, and prove its correctness. The proof uses step-indexed logical relations and was entirely mechanized using the Coq proof assistant.
Fichier principal
Vignette du fichier
higher-order-uncurrying.pdf (255.2 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-01499915 , version 1 (01-04-2017)

Identifiants

Citer

Zaynah Dargaye, Xavier Leroy. A verified framework for higher-order uncurrying optimizations. Higher-Order and Symbolic Computation, 2009, 22 (3), ⟨10.1007/s10990-010-9050-z⟩. ⟨hal-01499915⟩
151 Consultations
156 Téléchargements

Altmetric

Partager

Gmail Facebook X LinkedIn More