The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
Proving Properties of Complex Data Structures
Journal of the ACM (JACM)
New Programming Languages for Artificial Intelligence Research
ACM Computing Surveys (CSUR)
Structured Programming with go to Statements
ACM Computing Surveys (CSUR)
A program data flow analysis procedure
Communications of the ACM
An ALGOL-based associative language
Communications of the ACM
Programming with abstract data types
Proceedings of the ACM SIGPLAN symposium on Very high level languages
Techniques for the automatic selection of data structures
POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
SAIL
Global expression optimization during compilation
Global expression optimization during compilation
Type determination for very high level languages.
Type determination for very high level languages.
Automatic design and implementation of language data types
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
Toward a design apprentice: supporting reuse and evolution in software design
ACM SIGSOFT Software Engineering Notes
Widening the representation bottleneck: a functional implementation of relational programming
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Program Transformation Systems
ACM Computing Surveys (CSUR)
An Automatic Technique for Selection of Data Representations in SETL Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Synthesizing abstract data type specifications
ACM-SE 20 Proceedings of the 20th annual Southeast regional conference
Automatic data structure selection in SETL
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Selection of Indexes to Memory-Resident Entities for Semantic Data
IEEE Transactions on Knowledge and Data Engineering
Data abstraction from a programming language viewpoint
Proceedings of the 1980 workshop on Data abstraction, databases and conceptual modeling
Implementation prototypes in the development of programming language features
Proceedings of the workshop on Rapid prototyping
Chameleon: adaptive selection of collections
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Towards an integrated development environment
IBM Systems Journal
Hi-index | 48.22 |
The use of several levels of abstraction has proved to be very helpful in constructing and maintaining programs. When programs are designed with abstract data types such as sets and lists, programmer time can be saved by automating the process of filling in low-level implementation details. In the past, programming systems have provided only a single general purpose implementation for an abstract type. Thus the programs produced using abstract types were often inefficient in space or time. In this paper a system for automatically choosing efficient implementations for abstract types from a library of implementations is discussed. This process is discussed in detail for an example program. General issues in data structure selection are also reviewed.