Abstract
Of the Gabriel Lisp Benchmarks, the Boyer Benchmark ("Boyer") is the most representative of real AI applications, because it performs Prolog-like rule-directed rewriting, and because it relies heavily on garbage collection (GC) for the recovery of storage. We investigated the notion that such programs are unsuitable for explicit storage management---e.g., by means of a "linear" programming style in which every bound name dynamically occurs exactly once. We programmed Boyer in a "linear" fragment of Lisp in both interpretive-rule and compiled-rule versions, using both true linear (unshared) and reference count methods.We found that since the intermediate result of rewrite is unshared, the linear interpreted version is slower than the non-linear interpreted version, while the linear compiled version is slightly faster than the non-linear compiled version. When sharing is allowed, requiring reference counts for the linear versions, the linear shared versions are not competitive with the non-linear versions, except when "anchored pointers" are used. The anchored pointer reference count version, which reclaims storage, is still 1.25X slower than the non-linear version, which reclaims no storage.
Publisher
Association for Computing Machinery (ACM)
Reference34 articles.
1. Computational interpretations of linear logic
2. Baker H.G. "Unify and Conquer (Garbage Updating Aliasing ..) in Functional Languages". ACM Lisp & Funct. Progr. (1990) 218-226. 10.1145/91556.91652 Baker H.G. "Unify and Conquer (Garbage Updating Aliasing ..) in Functional Languages". ACM Lisp & Funct. Progr. (1990) 218-226. 10.1145/91556.91652
3. The buried binding and dead binding problems of Lisp 1.5
4. The Boyer Benchmark at warp speed
5. Lively linear Lisp
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献