scholarly journals Modeling, Sharing, and Recursion for Weak Reduction Strategies using Explicit Substitution

1996 ◽  
Vol 3 (56) ◽  
Author(s):  
Zine-El-Abidine Benaissa ◽  
Pierre Lescanne ◽  
Kristoffer H. Rose

<p>We present the lambda sigma^a_w calculus, a formal synthesis of the concepts of<br />sharing and explicit substitution for weak reduction. We show how<br />lambda sigma^a_w can be used as a foundation of implementations of functional<br />programming languages by modelling the essential ingredients of such<br />implementations, namely weak reduction strategies, recursion, space<br />leaks, recursive data structures, and parallel evaluation, in a uniform way.<br />First, we give a precise account of the major reduction strategies<br />used in functional programming and the consequences of choosing <br /> lambda-graph-reduction vs. environment-based evaluation. Second, we show<br />how to add constructors and explicit recursion to give a precise account<br />of recursive functions and data structures even with respect to<br />space complexity. Third, we formalize the notion of space leaks in lambda sigma^a_w<br />and use this to define a space leak free calculus; this suggests optimisations<br />for call-by-need reduction that prevent space leaking and enables<br />us to prove that the "trimming" performed by the STG machine does<br />not leak space.<br />In summary we give a formal account of several implementation<br />techniques used by state of the art implementations of functional programming<br />languages.</p><p>Keywords. Implementation of functional programming, lambda<br />calculus, weak reduction, explicit substitution, sharing, recursion, space<br />leaks.</p>

Author(s):  
David J. Lobina

Recursion, or the capacity of ‘self-reference’, has played a central role within mathematical approaches to understanding the nature of computation, from the general recursive functions of Alonzo Church to the partial recursive functions of Stephen C. Kleene and the production systems of Emil Post. Recursion has also played a significant role in the analysis and running of certain computational processes within computer science (viz., those with self-calls and deferred operations). Yet the relationship between the mathematical and computer versions of recursion is subtle and intricate. A recursively specified algorithm, for example, may well proceed iteratively if time and space constraints permit; but the nature of specific data structures—viz., recursive data structures—will also return a recursive solution as the most optimal process. In other words, the correspondence between recursive structures and recursive processes is not automatic; it needs to be demonstrated on a case-by-case basis.


1979 ◽  
Vol 22 (2) ◽  
pp. 79-96 ◽  
Author(s):  
W. E. Gull ◽  
M. A. Jenkins

Sign in / Sign up

Export Citation Format

Share Document