Programmatic Manipulation of Common Lisp Type Specifiers

From LRDE

Revision as of 18:55, 6 February 2017 by Bot (talk | contribs) (Created page with "{{Publication | published = true | date = 2017-02-06 | authors = Jim Newton, Didier Verna, Maximilien Colange | title = Programmatic Manipulation of Common Lisp Type Specifier...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Abstract

In this article we contrast the use of the s-expression (a ubiquitous data structure in Common Lisp) with the BDD (Binary Decision Diagram) as a data structure for programmatically manipulating Common Lisp type specifiers. The s-expression is the 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, as a tree reduction, and as a version of the SAT problem (the satisfiability problem). The experimental implementations represent type specifiers by both aforementioned data structures, and we compare the performance observed in each approach.

Documents

See also the Technical Report with many more details.