Why the constant 'undefined'? Logics of partial terms for strict and non-strict functional programming languages

6Citations
Citations of this article
11Readers
Mendeley users who have this article in their library.

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

APA

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.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free