On the Multiple Implementation of Abstract Data Types Within a Computation
IEEE Transactions on Software Engineering
Programming with sets; an introduction to SETL
Programming with sets; an introduction to SETL
Views: a way for pattern matching to cohabit with data abstraction
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
KIDS: A Semiautomatic Program Development System
IEEE Transactions on Software Engineering
The art of computer programming, volume 3: (2nd ed.) sorting and searching
The art of computer programming, volume 3: (2nd ed.) sorting and searching
From static to dynamic abstract data-types: an institution transformation
Theoretical Computer Science
An Automatic Technique for Selection of Data Representations in SETL Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Introduction to Algorithms
Continuous program optimization: A case study
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automating changes of data type in functional programs
KBSE '95 Proceedings of The 10th Knowledge-Based Software Engineering Conference
Techniques for the automatic selection of data structures
POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
Acceptability-oriented computing
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An experimental analysis of self-adjusting computation
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Dynamic Algorithm Selection Using Reinforcement Learning
AIDM '06 Proceedings of the International Workshop on on Integrating AI and Data Mining
Hi-index | 0.00 |
We outline an approach to abstract data types (ADTs) that allows an object of the type specified by the ADT to take on one of many possible representations. A dynamic abstract data type (DADT) is dual to dynamic algorithm selection and facilitates profiling of data in conjunction with the profiling of code. It also permits a programmer to delay or ignore details pertaining to data representation and enhance the efficiency of some algorithms by changing representations at run time without writing code extraneous to the algorithm itself. Additionally, we demonstrate that run time optimization of data objects is possible and allows for acceptable performance compared to traditional ADTs. An implementation is presented in Common Lisp.