ACM SIGPLAN Notices
Logic and computation: interactive proof with Cambridge LCF
Logic and computation: interactive proof with Cambridge LCF
PX: a computational logic
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
ACM SIGPLAN Notices - Haskell special issue
Semantics of programming languages: structures and techniques
Semantics of programming languages: structures and techniques
Inferring the equivalence of functional programs that mutate data
Theoretical Computer Science
Formal specification and design
Formal specification and design
The formal semantics of programming languages: an introduction
The formal semantics of programming languages: an introduction
The Definition of Standard ML
Call-by-Value, Call-by-Name and the Logic of Values
CSL '96 Selected Papers from the10th International Workshop on Computer Science Logic
The logic and expressibility of simply-typed call-by-value and lazy languages
The logic and expressibility of simply-typed call-by-value and lazy languages
Mathematical Theory of Computation
Mathematical Theory of Computation
Constructive Foundations for Featherweight Java
PTCS '01 Proceedings of the International Seminar on Proof Theory in Computer Science
A Theory of Explicit Mathematics Equivalent to ID1
Proceedings of the 14th Annual Conference of the EACSL on Computer Science Logic
Hi-index | 0.00 |
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’.