Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Abstract data types and the development of data structures
Communications of the ACM
A technique for software module specification with examples
Communications of the ACM
Communications of the ACM
Effective Java programming language guide
Effective Java programming language guide
The boost graph library: user guide and reference manual
The boost graph library: user guide and reference manual
Object-Oriented Programming Versus Abstract Data Types
Proceedings of the REX School/Workshop on Foundations of Object-Oriented Languages
Programming with abstract data types
Proceedings of the ACM SIGPLAN symposium on Very high level languages
Robocode: using games to teach artificial intelligence
Journal of Computing Sciences in Colleges
Incrementalization across object abstraction
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 5th international conference on Aspect-oriented software development
RoboCode & problem-based learning: a non-prescriptive approach to teaching programming
Proceedings of the 11th annual SIGCSE conference on Innovation and technology in computer science education
Caching and incrementalisation in the java query language
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Hi-index | 0.00 |
Operations on abstract data types can be classified as either queries or updates --- those that either query the current state, or update it. Modern object-oriented programming languages require classes/interfaces to support a predefined set of such operations. This presents a challenge for software designers, since a fixed interface can severely restrict the opportunities for optimisation. In this paper, we present two common patterns --- Specific Query Optimisation and Generalised Query Optimisation --- for optimising such operations. The first requires specific knowledge of which operation to optimise beforehand, whilst the latter provides more leeway in this regard. These patterns are commonly occurring in software, and we find numerous instances of them within the Java standard libraries.