Logo

    optimal beta reduction

    Explore " optimal beta reduction" with insightful episodes like "Lamping's abstract algorithm", "Examples showing non-optimality of Haskell", "Lambda graphs with duplicators and start of Lamping's abstract algorithm", "Duplicating redexes as the central problem of optimal reduction" and "Introduction to optimal beta reduction" from podcasts like ""Iowa Type Theory Commute", "Iowa Type Theory Commute", "Iowa Type Theory Commute", "Iowa Type Theory Commute" and "Iowa Type Theory Commute"" and more!

    Episodes (5)

    Lamping's abstract algorithm

    Lamping's abstract algorithm

    The simplified version of Lamping's algorithm for optimal beta-reduction is discussed.  We have duplicators which eat their way through lambda graphs.  When copying a lambda abstraction, we send one duplicator down the variable port, and another down the body port.  When they meet, they cancel each other and the duplication is done.  But duplication can get paused waiting for a value to come in on a wire from outside the lambda abstraction.  This can lead to a situation where some other duplication needs to duplicate a lambda graph containing frozen duplicators.  Then we have to decide, when two duplicators meet, should they cancel each other (signalling the end of a duplication on one level), or should one duplicate the duplicators (for an outer duplication of some lambda graph containing frozen duplicators).  The abstract algorithm leaves this choice undetermined.  The hairy versions of the algorithm add complex additional machinery to keep track of these levels of duplication to resolve that nondeterminism.

    Lambda graphs with duplicators and start of Lamping's abstract algorithm

    Lambda graphs with duplicators and start of Lamping's abstract algorithm

    In this episode I talk about how to represent lambda terms as graphs with duplicator nodes for splitting edges corresponding to bound variables.  I also start discussing the beginning of Lampings' abstract algorithm for optimal beta-reduction, in particular how we need to push duplicators inside lambda abstractions to initiate a lazy duplication.

    Duplicating redexes as the central problem of optimal reduction

    Duplicating redexes as the central problem of optimal reduction

    We discussed last time how with a graph-sharing implementation of untyped lambda calculus, it can happen that you are forced to break sharing and copy a lambda abstraction.  We discuss in this episode the central issue with doing that, namely copying redexes and copying applications which could turn into redexes following other beta reductions.  The high-level idea of the proposed solution is also discussed, namely lazy graph duplication.

    Logo

    © 2024 Podcastworld. All rights reserved

    Stay up to date

    For any inquiries, please email us at hello@podcastworld.io