Matthias Felleisen

  1. Stepping Lazy Programs.

    Authors: Stephen Chang, Matthias Felleisen, John Clements, Eli Barzilay
    Subjects: Programming Languages
    Abstract

    Debugging lazy functional programs poses serious challenges. In support of
    the "stop, examine, and resume" debugging style of imperative languages, some
    debugging tools abandon lazy evaluation. Other debuggers preserve laziness but
    present it in a way that may confuse programmers because the focus of
    evaluation jumps around in a seemingly random manner.

  2. Evaluating Call-By-Need on the Control Stack.

    Authors: David Van Horn, Stephen Chang, Matthias Felleisen
    Subjects: Programming Languages
    Abstract

    Ariola and Felleisen's call-by-need {\lambda}-calculus replaces a variable
    occurrence with its value at the last possible moment. To support this gradual
    notion of substitution, function applications-once established-are never
    discharged. In this paper we show how to translate this notion of reduction
    into an abstract machine that resolves variable references via the control
    stack. In particular, the machine uses the static address of a variable
    occurrence to extract its current value from the dynamic control stack.

Syndicate content