Programmatic Manipulation of Common Lisp Type Specifiers
Description
In this article we contrast the use of the s-expression with the BDD
(Binary Decision Diagram) as a data structure for programmatically
manipulating Common Lisp type specifiers. The s-expression is the
\textit{de facto} standard surface syntax and also programmatic
representation of the type specifier, but the BDD data structure
offers advantages: most notably, type equivalence checks using
s-expressions can be computationally intensive, whereas the type
equivalence check using BDDs is a check for object identity. As an
implementation and performance experiment, we define the notion of
maximal disjoint type decomposition, and discuss implementations of
algorithms to compute it: a brute force iteration, and as a tree
reduction. The experimental implementations represent type
specifiers by both aforementioned data structures, and we compare
the performance observed in each approach.
Files
newton.17.els.pdf
Files
(469.4 kB)
Name | Size | Download all |
---|---|---|
md5:b1e56afd75551df90c2a847ed1f64aff
|
469.4 kB | Preview Download |