The Unfolding Semantics of Functional Programs
Abstract
The idea of using unfolding as a way of computing a program semantics has been applied successfully to logic programs and has shown itself a powerful tool that provides concrete, implementable results, as its outcome is actually source code. Thus, it can be used for characterizing not-so-declarative constructs in mostly declarative languages, or for static analysis. However, unfolding-based semantics has not yet been applied to higher-order, lazy functional programs, perhaps because some functional features absent in logic programs make the correspondence between execution and unfolding not as straightforward. This work presents an unfolding semantics for higher-order, lazy functional programs and proves its adequacy with respect to a given operational semantics. Finally, we introduce some applications of our semantics.
Cite
@article{arxiv.1708.08003,
title = {The Unfolding Semantics of Functional Programs},
author = {José María Rey-Poza and Julio Mariño-Carballo},
journal= {arXiv preprint arXiv:1708.08003},
year = {2017}
}