Hostname: page-component-8448b6f56d-m8qmq Total loading time: 0 Render date: 2024-04-17T02:25:45.799Z Has data issue: false hasContentIssue false

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

Published online by Cambridge University Press:  01 March 1998

ROBERT F. STÄRK
Affiliation:
Institute of Informatics, University of Fribourg, Rue Faucigny 2, CH–1700 Fribourg, Switzerland (e-mail: robert.staerk@unifr.ch)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

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’.

Type
Research Article
Copyright
© 1998 Cambridge University Press
Submit a response

Discussions

No Discussions have been published for this article.