Volume II: Parallel Languages on PARLE: Parallel Architectures and Languages Europe
A generic account of continuation-passing styles
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A call-by-need lambda calculus
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Properties of a first-order functional language with sharing
Theoretical Computer Science
Equational term graph rewriting
Fundamenta Informaticae - Special issue on graph transformations
On global dynamics of optimal graph reduction
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Functional Programming and Parallel Graph Rewriting
Functional Programming and Parallel Graph Rewriting
Dactl: An Experimental Graph Rewriting Language
Proceedings of the 4th International Workshop on Graph-Grammars and Their Application to Computer Science
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
A functional correspondence between evaluators and abstract machines
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
A computational formalization for partial evaluation
Mathematical Structures in Computer Science
The call-by-need lambda calculus
Journal of Functional Programming
The call-by-need lambda calculus
Journal of Functional Programming
The Implementation of Functional Programming Languages (Prentice-Hall International Series in Computer Science)
Information Processing Letters
Defunctionalized interpreters for programming languages
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Lazy evaluation and delimited control
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Small-step and big-step semantics for call-by-need
Journal of Functional Programming
From reduction-based to reduction-free normalization
AFP'08 Proceedings of the 6th international conference on Advanced functional programming
Defunctionalized interpreters for call-by-need evaluation
FLOPS'10 Proceedings of the 10th international conference on Functional and Logic Programming
From type checking by recursive descent to type checking with an abstract machine
Proceedings of the Eleventh Workshop on Language Descriptions, Tools and Applications
Evaluating call-by-need on the control stack
TFP'10 Proceedings of the 11th international conference on Trends in functional programming
IFL'10 Proceedings of the 22nd international conference on Implementation and application of functional languages
Theoretical Computer Science
A synthetic operational account of call-by-need evaluation
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
Hi-index | 0.00 |
We present a purely syntactic theory of graph reduction for the canonical combinators S, K, and I, where graph vertices are represented with evaluation contexts and let expressions. We express this syntactic theory as a reduction semantics. We then factor out the introduction of let expressions to denote as many graph vertices as possible upfront instead of on demand, resulting in a second syntactic theory, this one of term graphs in the sense of Barendregt et al. We then interpret let expressions as operations over a global store (thus shifting, in Strachey's words, from denotable entities to storable entities), resulting in a third syntactic theory, which we express as a reduction semantics. This store-based reduction semantics corresponds to a store-based abstract machine whose architecture coincides with that of Turner's original reduction machine. The three syntactic theories presented here therefore properly account for combinatory graph reduction As We Know It.