An empirical comparison of priority-queue and event-set implementations
Communications of the ACM
International Journal of Man-Machine Studies - Special Issue: Knowledge Acquisition for Knowledge-based Systems. Part 5
Making data structures persistent
Journal of Computer and System Sciences - 18th Annual ACM Symposium on Theory of Computing (STOC), May 28-30, 1986
Introduction to algorithms
C4.5: programs for machine learning
C4.5: programs for machine learning
Real-time deques, multihead Turing machines, and purely functional programming
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Purely functional random-access lists
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Persistent lists with catenation via recursive slow-down
STOC '95 Proceedings of the twenty-seventh annual ACM symposium on Theory of computing
The role of lazy evaluation in amortized data structures
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Functional programming with graphs
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Purely functional data structures
Purely functional data structures
An empirical comparison of B-trees, compact B-trees and multiway trees
SIGMOD '84 Proceedings of the 1984 ACM SIGMOD international conference on Management of data
Machine Learning
A Second Year Course on Data Structures Based on Functional Programming
FPLE '95 Proceedings of the First International Symposium on Functional Programming Languages in Education
Fully Persistent Arrays (Extended Array)
WADS '89 Proceedings of the Workshop on Algorithms and Data Structures
Advanced Functional Programming, Second International School-Tutorial Text
Auburn: A Kit for Benchmarking Functional Data Structures
IFL '97 Selected Papers from the 9th International Workshop on Implementation of Functional Languages
Amortization, lazy evaluation, and persistence: lists with catenation via lazy linking
FOCS '95 Proceedings of the 36th Annual Symposium on Foundations of Computer Science
Purely functional data structures
Purely functional data structures
A new method for functional arrays
Journal of Functional Programming
GAST: generic automated software testing
IFL'02 Proceedings of the 14th international conference on Implementation of functional languages
Hi-index | 0.00 |
Every designer of a new data structure wants to know how well it performs in comparison with others. But finding, coding and testing applications as benchmarks can be tedious and time-consuming. Besides, how a benchmark uses a data structure may considerably affect its apparent efficiency, so the choice of applications may bias the results. We address these problems by developing a tool for inductive benchmarking. This tool, Auburn, can generate benchmarks across a wide distribution of uses. We precisely define ‘the use of a data structure’, upon which we build the core algorithms of Auburn: how to generate a benchmark from a description of use, and how to extract a description of use from an application. We then apply inductive classification techniques to obtain decision trees for the choice between competing data structures. We test Auburn by benchmarking several implementations of three common data structures: queues, random-access lists and heaps. These and other results show Auburn to be a useful and accurate tool, but they also reveal some limitations of the approach.