Publication Type |
technical report |
School or College |
College of Engineering |
Department |
Computing, School of |
Creator |
Lindstrom, Gary E. |
Other Author |
Bage, Goran |
Title |
Combinator evaluation of functional programs with logical variables |
Date |
1987 |
Description |
A technique is presented that brings logical variables into the scope of the well known Turner method for evaluating normal order functioned programs by S, K, I combinator graph reduction. This extension is illustrated by SASL+LV, an extension of Turner's language SASL in which general expressions serve as formal parameters, and parameter passage is done by unification. The conceptual and practical advantages of such an extension are discussed, as well as semantic pitfalls that arise from the attendant weakening of referential transparency. Only four new combinators (LV, BV, FN and UNIFY) are introduced. The resulting object code is fully upward compatible in the sense that previously compiled SASL object code remains executable with unchanged semantics. However, "read-only" variable usage in SASL-f LV programs requires a "multi-tasking" extension of the customary stack-based evaluation method. Mechanisms are presented for managing this multi-tasking on both single and multi-processor systems. Finally, directions are examined for applying this technique to implementations involving larger granularity combinators, and fuller semantic treatment of logical variables (e.g. accommodation of failing unifications). |
Type |
Text |
Publisher |
University of Utah |
First Page |
1 |
Last Page |
25 |
Subject |
Functional programs; Logical variables; SASL+LV; Turner's language |
Language |
eng |
Bibliographic Citation |
Bage, G., & Lindstrom, G. (1987). Combinator evaluation of functional programs with logical variables?. 1-25. UUCS-87-027. |
Series |
University of Utah Computer Science Technical Report |
Relation is Part of |
ARPANET |
Rights Management |
©University of Utah |
Format Medium |
application/pdf |
Format Extent |
3,780,246 bytes |
Identifier |
ir-main,16341 |
ARK |
ark:/87278/s6j39b02 |
Setname |
ir_uspace |
ID |
705270 |
Reference URL |
https://collections.lib.utah.edu/ark:/87278/s6j39b02 |