Coral++ is a database programming language that integrates Coral [23] with the C++ type system. The data model allows arbitrary C++ objects in database facts, and the declarative query language extends Coral with C++ expressions in rules. Coral++ also supports an imperative rule-based sub-language that is integrated with C++, providing support for updates. The design and implementation of Coral++ incorporates several important decisions: the data model is based on C++, and class definitions and method invocations are handled entirely by the C++ compiler; the notion of classes is kept orthogonal to the re- lated notion of class extents; and declarative Coral++ programs can be largely understood in terms of standard Horn clause logic with C++ method invocations treated as external functions. The implementation outline illustrates that extending an existing deductive system to incorporate object-oriented features in the data model is feasible, and is orthogonal to the techniques used for object storage and retrieval.
展开▼