On the optimal nesting order for computing N-relational joins
ACM Transactions on Database Systems (TODS)
Join processing in relational databases
ACM Computing Surveys (CSUR)
Iterators: signs of weakness in object-oriented languages
ACM SIGPLAN OOPS Messenger
On the relative cost of sampling for join selectivity estimation
PODS '94 Proceedings of the thirteenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Communications of the ACM
Query-based debugging of object-oriented programs
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Objects, components, and frameworks with UML: the catalysis approach
Objects, components, and frameworks with UML: the catalysis approach
The Unified Modeling Language user guide
The Unified Modeling Language user guide
The object constraint language: precise modeling with UML
The object constraint language: precise modeling with UML
The design of an OCL query-based debugger for C++
Proceedings of the 2001 ACM symposium on Applied computing
Using OCL-queries for debugging C++
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Using Uml: Software Engineering with Objects and Components
Using Uml: Software Engineering with Objects and Components
A Polynomial Time Algorithm for Optimizing Join Queries
Proceedings of the Ninth International Conference on Data Engineering
Optimization of Nonrecursive Queries
VLDB '86 Proceedings of the 12th International Conference on Very Large Data Bases
Deriving Production Rules for Incremental View Maintenance
VLDB '91 Proceedings of the 17th International Conference on Very Large Data Bases
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
Heuristic and randomized optimization for the join ordering problem
The VLDB Journal — The International Journal on Very Large Data Bases
Query-based debugging
Snapshot Query-Based Debugging
ASWEC '04 Proceedings of the 2004 Australian Software Engineering Conference
Safe query objects: statically typed objects as remotely executable queries
Proceedings of the 27th international conference on Software engineering
Checking ownership and confinement: Research Articles
Concurrency and Computation: Practice & Experience - Formal Techniques for Java-like Programs
Finding application errors and security flaws using PQL: a program query language
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Relational queries over program traces
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
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
Modular verification of static class invariants
FM'05 Proceedings of the 2005 international conference on Formal Methods
First-class relationships in an object-oriented language
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
The essence of data access in Cω: the power is in the dot!
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Extracting queries by static analysis of transparent persistence
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Efficient runtime invariant checking: a framework and case study
WODA '08 Proceedings of the 2008 international workshop on dynamic analysis: held in conjunction with the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2008)
Caching and incrementalisation in the java query language
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Interprocedural query extraction for transparent persistence
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Generating incremental implementations of object-set queries
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
Executing code in the past: efficient in-memory object graph versioning
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
PQL: a purely-declarative java extension for parallel programming
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Synthesizing iterators from abstraction functions
Proceedings of the 11th International Conference on Generative Programming and Component Engineering
A relational model of object collaborations and its use in reasoning about relationships
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Reify your collection queries for modularity and speed!
Proceedings of the 12th annual international conference on Aspect-oriented software development
Exploring optimization and caching for efficient collection operations
Automated Software Engineering
Hi-index | 0.00 |
Modern programming languages have little or no support for querying objects and collections. Programmers are forced to hand code such queries using nested loops, which is both cumbersome and inefficient. We demonstrate that first-class queries over objects and collections improve program readability, provide good performance and are applicable to a large number of common programming problems. We have developed a prototype extension to Java which tracks all objects in a program using AspectJ and allows first-class queries over them in the program. Our experimental findings indicate that such queries can be significantly faster than common programming idioms and within reach of hand optimised queries.