Kahrs, Stefan
(1992)
Unlimp -- uniqueness as a leitmotiv for implementation.
In: Bruynooghe, Maurice and Wirsing, Martin, eds.
Programming Language Implementation and Logic Programming 4th International Symposium.
Lecture Notes in Computer Science
.
Springer, Berlin, Germany, pp. 115-129.
ISBN 978-3-540-55844-6.
E-ISBN 978-3-540-47297-1.
(doi:10.1007/3-540-55844-6_131)
Abstract
When evaluation in functional programming languages is explained using ?-calculus and/or term rewriting systems, expressions and function definitions are often defined as terms, that is as em trees. Similarly, the collection of all terms is defined as a em forest, that is a directed, acyclic graph where every vertex has at most one incoming edge. Concrete implementations usually drop the last restriction (and sometimes acyclicity as well), i.e. many terms can share a common subterm, meaning that different paths of subterm edges reach the same vertex in the graph. Any vertex in such a graph represents a term. A term is represented uniquely in such a graph if there are no two different vertices representing it. Such a representation can be established by using em hash-consing for the creation of heap objects. We investigate the consequences of adopting uniqueness in this sense as a leitmotiv for implementation (called Unlimp), i.e. not em allowing any two different vertices in a graph to represent the same term.
- Depositors only (login required):