The synthesizer generator: a system for constructing language-based editors
The synthesizer generator: a system for constructing language-based editors
INC: a language for incremental computations
ACM Transactions on Programming Languages and Systems (TOPLAS)
Incremental attribute evaluation: a flexible algorithm for lazy update
ACM Transactions on Programming Languages and Systems (TOPLAS)
Comprehensions, a query notation for DBPLs
DBPL3 Proceedings of the third international workshop on Database programming languages : bulk types & persistent data: bulk types & persistent data
A categorized bibliography on incremental computation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Integrating pointer variables into one-way constraint models
ACM Transactions on Computer-Human Interaction (TOCHI)
ACM SIGMOD Record
Tutorial: languages for collection types
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
Incremental computation of nested relational query expressions
ACM Transactions on Database Systems (TODS)
Normal forms and conservative extension properties for query languages over collection types
Journal of Computer and System Sciences
Materialized views: techniques, implementations, and applications
Materialized views: techniques, implementations, and applications
Optimizing Queries with Object Updates
Journal of Intelligent Information Systems - Special issue on functional approach to intelligent information systems
The object data standard: ODMG 3.0
The object data standard: ODMG 3.0
Incremental maintenance of materialized OQL views
Proceedings of the 3rd ACM international workshop on Data warehousing and OLAP
Optimizing object queries using an effective calculus
ACM Transactions on Database Systems (TODS)
Dynamically bypassing copy rule chains in attribute grammars
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
IEEE Transactions on Knowledge and Data Engineering
Implementing Incremental View Maintenance in Nested Data Models
DBLP-6 Proceedings of the 6th International Workshop on Database Programming Languages
Incremental Updates for Materialized OQL Views
DOOD '97 Proceedings of the 5th International Conference on Deductive and Object-Oriented Databases
Propagator: A Family of Patterns
TOOLS '97 Proceedings of the Tools-23: Technology of Object-Oriented Languages and Systems
Incrementalization across object abstraction
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Caching and incrementalisation in the java query language
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
From clarity to efficiency for distributed algorithms
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.01 |
The need for incremental algorithms for evaluating database queries is well known, but constructing algorithms that work on object-oriented databases (OODBs) has been difficult. The reason is that OODB query languages involve complex data types including composite objects and nested collections. As a result, existing algorithms have limitations in that the kinds of database updates are restricted, the operations found in many query languages are not supported, or the algorithms are too complex to be described precisely. We present an incremental computation algorithm that can handle any kind of database updates, can accept any expressions in complex query languages such as OQL, and can be described precisely. By translating primitive values and records into collections, we can reduce all query expressions comprehension. This makes the problems with incremental computation less complicated and thus allows us to decribe of two parts: one is to maintain the consistency in each comprehension occurrence and the other is to update the value of an entire expression. The algorithm is so flexible that we can use strict updates, lazy updates, and their combinations. By comparing the performance of applications built with our mechanism and that of equivalent hand written update programs, we show that our incremental algorithm can be iplemented efficiently.