Abstract
In this article we explain two different operational interpretations of functional programs by two different logics. The programs are simply typed λ-terms with pairs, projections, if-then-else and least fixed point recursion. A logic for call-by-value evaluation and a logic for call-by-name evaluation are obtained as as extensions of a system which we call the basic logic of partial terms (BPT). This logic is suitable to prove properties of programs that are valid under both strict and non-strict evaluation. We use methods from denotational semantics to show that the two extensions of BPT are adequate for call-by-value and call-by-name evaluation. Neither the programs nor the logics contain the constant 'undefined'.
Cite
CITATION STYLE
Stärk, R. F. (1998). Why the constant “undefined”? Logics of partial terms for strict and non-strict functional programming languages. Journal of Functional Programming, 8(2), 97–129. https://doi.org/10.1017/S0956796898002974
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.