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 trees. Similarly, the collection of all terms is defined as a 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 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 allowing any two different vertices in a graph to represent the same term.
CITATION STYLE
Kahrs, S. (1992). Unlimp: Uniqueness as a leitmotiv for implementation. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 631 LNCS, pp. 115–129). Springer Verlag. https://doi.org/10.1007/3-540-55844-6_131
Mendeley helps you to discover research relevant for your work.