Abstract:Abstract. An improvement is a correct program transformation that optimizes the program, where the criterion is that the number of computation steps until a value is obtained is decreased. This paper investigates improvements in both -an untyped and a polymorphically typed -call-by-need lambda-calculus with letrec, case, constructors and seq. Besides showing that several local optimizations are improvements, the main result of the paper is a proof that common subexpression elimination is correct and an improve… Show more
“…The first expression has four separate occurrences of a (long) list, whereas the second expression shares the lists, where list varies in length in the experiments. The results are consistent with the claim that common subexpression elimination (cse) is a time improvement [14], and show that (cse) and an increase of sharing in general may increase the (maximal) space usage. In neither direction the example is a space improvement, which shows that (cse) is not a space improvement.…”
Section: Analyses For Examplessupporting
confidence: 88%
“…For measuring the space-behavior of s, we use the maximum size occurring in an nogc-reduction sequence to a WHNF: This measure is very strict and especially appropriate if the available space is limited. A transformation is a time improvement [14,13] if it never increases the rln-reduction length, and a transformation is a space improvement if it never increases the space consumption. These relations are precongruences.…”
Section: Time-and Space-improvementsmentioning
confidence: 99%
“…The used abstract machine is defined in [14,13] and is based on the abstract machine Mark 1 by Peter Sestoft (see [17]), which was designed for call-by-need evaluation. The machine is extended in a straightforward way to handle seq-expressions, where a seq-expression evaluates the first argument to a value and then returns the second argument.…”
Section: An Abstract Machine For Lrpmentioning
confidence: 99%
“…time usage (the number of reduction steps), is e.g. [9,10,11] for call-by-name and [8,15,13,14] for call-by-need. There seem to be only a few studies on space improvements, by Gustavsson and Sands [4,5,3].…”
We present an implementation of an interpreter LRPi for the call-by-need calculus LRP, based on a variant of Sestoft's abstract machine Mark 1, extended with an eager garbage collector. It is used as a tool for exact space usage analyses as a support for our investigations into space improvements of call-by-need calculi.
“…The first expression has four separate occurrences of a (long) list, whereas the second expression shares the lists, where list varies in length in the experiments. The results are consistent with the claim that common subexpression elimination (cse) is a time improvement [14], and show that (cse) and an increase of sharing in general may increase the (maximal) space usage. In neither direction the example is a space improvement, which shows that (cse) is not a space improvement.…”
Section: Analyses For Examplessupporting
confidence: 88%
“…For measuring the space-behavior of s, we use the maximum size occurring in an nogc-reduction sequence to a WHNF: This measure is very strict and especially appropriate if the available space is limited. A transformation is a time improvement [14,13] if it never increases the rln-reduction length, and a transformation is a space improvement if it never increases the space consumption. These relations are precongruences.…”
Section: Time-and Space-improvementsmentioning
confidence: 99%
“…The used abstract machine is defined in [14,13] and is based on the abstract machine Mark 1 by Peter Sestoft (see [17]), which was designed for call-by-need evaluation. The machine is extended in a straightforward way to handle seq-expressions, where a seq-expression evaluates the first argument to a value and then returns the second argument.…”
Section: An Abstract Machine For Lrpmentioning
confidence: 99%
“…time usage (the number of reduction steps), is e.g. [9,10,11] for call-by-name and [8,15,13,14] for call-by-need. There seem to be only a few studies on space improvements, by Gustavsson and Sands [4,5,3].…”
We present an implementation of an interpreter LRPi for the call-by-need calculus LRP, based on a variant of Sestoft's abstract machine Mark 1, extended with an eager garbage collector. It is used as a tool for exact space usage analyses as a support for our investigations into space improvements of call-by-need calculi.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.