|
ABSTRACT
Many contemporary object-oriented programming languages support first-class queries or comprehensions. These language extensions make it easier for programmers to write queries, but are generally implemented no more efficiently than the code using collections, iterators, and loops that they replace. Crucially, whenever a query is re-executed, it is recomputed from scratch. We describe a general approach to optimising queries over mutable objects: query results are cached, and those caches are incrementally maintained whenever the collections and objects underlying those queries are updated. We hope that the performance benefits of our optimisations may encourage more general adoption of first-class queries by object-oriented programmers.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
G. Bierman, E. Meijer, and W. Schulte. The essence of data access in c!. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), volume 3586 of Lecture Notes in Computer Science, pages 287--311. Springer-Verlag, 2005.
|
| |
3
|
|
 |
4
|
Shigeru Chiba, A metaobject protocol for C++, Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, p.285-299, October 15-19, 1995, Austin, Texas, United States
|
| |
5
|
J. Darlington. Program transformation and synthesis: Present capabilities. Technical Report Res. Report 77/43, Dept. of Computing and Control, Imperial College of Science and Technology, London, 1977.
|
 |
6
|
|
| |
7
|
|
 |
8
|
Simon F. Goldsmith , Robert O'Callahan , Alex Aiken, Relational queries over program traces, Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
 |
9
|
|
| |
10
|
A. Gupta and I. S. Mumick. Maintenance of materialized views: Problems, techniques and applications. IEEE Quarterly Bulletin on Data Engineering; Special Issue on Materialized Views and Data Warehousing, 18(2):3--18, 1995.
|
 |
11
|
Ashish Gupta , Inderpal Singh Mumick , V. S. Subrahmanian, Maintaining views incrementally, Proceedings of the 1993 ACM SIGMOD international conference on Management of data, p.157-166, May 25-28, 1993, Washington, D.C., United States
|
 |
12
|
Peter J. Haas , Jeffrey F. Naughton , Arun N. Swami, On the relative cost of sampling for join selectivity estimation, Proceedings of the thirteenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems, p.14-24, May 24-27, 1994, Minneapolis, Minnesota, United States
[doi> 10.1145/182591.182594]
|
| |
13
|
|
 |
14
|
|
| |
15
|
|
| |
16
|
J.--H. Hong and S.-B. Cho. Evolution of emergent behaviors for shooting game characters in robocode. In Proceedings of the 2004 IEEE Congress on Evolutionary Computation, pages 634--638. IEEE Press, 2004.
|
 |
17
|
Katia Hristova , Tom Rothamel , Yanhong A. Liu , Scott D. Stoller, Efficient type inference for secure information flow, Proceedings of the 2006 workshop on Programming languages and analysis for security, June 10-10, 2006, Ottawa, Ontario, Canada
[doi> 10.1145/1134744.1134759]
|
 |
18
|
|
| |
19
|
|
| |
20
|
R. Lencevicius. On-the-fly query-based debugging with examples. In Proceedings of the Workshop on Automated and Algorithmic Debugging (AADEBUG), 2000.
|
 |
21
|
Raimondas Lencevicius , Urs Hölzle , Ambuj K. Singh, Query-based debugging of object-oriented programs, Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.304-317, October 05-09, 1997, Atlanta, Georgia, United States
|
| |
22
|
|
 |
23
|
|
 |
24
|
Yanhong A. Liu , Scott D. Stoller , Michael Gorbovitski , Tom Rothamel , Yanni Ellen Liu, Incrementalization across object abstraction, Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
 |
25
|
|
 |
26
|
|
 |
27
|
Michael Martin , Benjamin Livshits , Monica S. Lam, Finding application errors and security flaws using PQL: a program query language, Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
 |
28
|
Erik Meijer , Brian Beckman , Gavin Bierman, LINQ: reconciling object, relations and XML in the .NET framework, Proceedings of the 2006 ACM SIGMOD international conference on Management of data, June 27-29, 2006, Chicago, IL, USA
[doi> 10.1145/1142473.1142552]
|
 |
29
|
|
 |
30
|
Hiroaki Nakamura, Incremental computation of complex object queries, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.156-165, October 14-18, 2001, Tampa Bay, FL, USA
|
| |
31
|
M. Nelson. Robocode, http://robocode.sourceforge.net, 2007.
|
 |
32
|
|
| |
33
|
|
| |
34
|
|
 |
35
|
|
| |
36
|
|
| |
37
|
|
| |
38
|
|
| |
39
|
|
| |
40
|
|
| |
41
|
D. Willis, D. J. Pearce, and J. Noble. Efficient object querying for Java. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), volume 4067 of Lecture Notes in Computer Science, pages 28--49. Springer-Verlag, 2006.
|
|