Results 1 -
6 of
6
Graph Types
- IN PROC. 20TH ACM POPL
, 1993
"... Recursive data structures are abstractions of simple records and pointers. They impose a shape invariant, which is verified at compiletime and exploited to automatically generate code for building, copying, comparing, and traversing values without loss of efficiency. However, such values are alw ..."
Abstract
-
Cited by 119 (9 self)
- Add to MetaCart
Recursive data structures are abstractions of simple records and pointers. They impose a shape invariant, which is verified at compiletime and exploited to automatically generate code for building, copying, comparing, and traversing values without loss of efficiency. However, such values are always tree shaped, which is a major obstacle to practical use. We propose a notion of graph types , which allow common shapes, such as doubly-linked lists or threaded trees, to be expressed concisely and efficiently. We define regular languages of routing expressions to specify relative addresses of extra pointers in a canonical spanning tree. An efficient algorithm for computing such addresses is developed. We employ a second-order monadic logic to decide well-formedness of graph type specifications. This logic can also be used for automated reasoning about pointer structures.
The architecture of the EXODUS extensible DBMS
- In Proc. Int. Workshop on Object-Oriented Database Systems
, 1986
"... With non-traditional application areas such as engineering design, image/voice data management, scientific/statistical applications, and artificial intelligence systems all clamoring for ways to store and efficiently process larger and larger volumes of data, it is clear that traditional database te ..."
Abstract
-
Cited by 51 (2 self)
- Add to MetaCart
With non-traditional application areas such as engineering design, image/voice data management, scientific/statistical applications, and artificial intelligence systems all clamoring for ways to store and efficiently process larger and larger volumes of data, it is clear that traditional database technology has been pushed to its lim-its. It also seems clear that no single database system will be capable of simultaneously meeting the functionality and performance requirements of such a diverse set of applications. In this paper we describe the initial design of EXODUS, an extensible database system that will facilitate the fast development of high-performance, application-specific database systems. EXODUS provides certain kernel facilities, including a versatile storage manager and a type manager. In addition, it provides an architectural framework for building application-specific database sys-tems, tools to partially automate the generation of such systems, and libraries of software components (e.g., access methods) that are likely to be useful for many application domains.
Type Theories and Object-Oriented Programming
- ACM Computing Surveys
, 1988
"... Object-oriented programming is becoming a popular approach to the construction of complex software systems. Benefits of object orientation include support for modular design, code sharing, and extensibility. In order to make the most of these advantages, a type theory for objects and their interacti ..."
Abstract
-
Cited by 48 (0 self)
- Add to MetaCart
Object-oriented programming is becoming a popular approach to the construction of complex software systems. Benefits of object orientation include support for modular design, code sharing, and extensibility. In order to make the most of these advantages, a type theory for objects and their interactions should be developed to aid checking and
Le Fun: Logic, equations, and Functions
- In Proc. 4th IEEE Internat. Symposium on Logic Programming
, 1987
"... Abstract † We introduce a new paradigm for the integration of functional and logic programming. Unlike most current research, our approach is not based on extending unification to general-purpose equation solving. Rather, we propose a computation delaying mechanism called residuation. This allows a ..."
Abstract
-
Cited by 42 (1 self)
- Add to MetaCart
Abstract † We introduce a new paradigm for the integration of functional and logic programming. Unlike most current research, our approach is not based on extending unification to general-purpose equation solving. Rather, we propose a computation delaying mechanism called residuation. This allows a clear distinction between functional evaluation and logical deduction. The former is based on the λ-calculus, and the latter on Horn clause resolution. In clear contrast with equation-solving approaches, our model supports higher-order function evaluation and efficient compilation of both functional and logic programming expressions, without being plagued by non-deterministic term-rewriting. In addition, residuation lends itself naturally to process synchronization and constrained search. Besides unification (equations), other residuations may be any ground-decidable goal, such as mutual exclusion (inequations), and comparisons (inequalities). We describe an implementation of the residuation paradigm as a prototype language called Le Fun—Logic, equations, and Functions.
Decomposition of relational schemata into components defined by both projection and restriction
- ACM SIGACT-SIGMOS-SIGART Sym
, 1988
"... A generalized approach to the decomposition of relational schemata is developed in which the component views may be defined using both restriction and projection operators, thus admitting both horizontal and vertical decompositions. The realization of restrictions is enabled through the use of a Boo ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
A generalized approach to the decomposition of relational schemata is developed in which the component views may be defined using both restriction and projection operators, thus admitting both horizontal and vertical decompositions. The realization of restrictions is enabled through the use of a Boolean algebra of types, while true independence of projections is modelled by permitting null values in the base schema. The flavor of the approach is algebraic, with the the collection of all candidate views of a decomposition modelled within a lattice-like framework, and the actual decompositions arising as Boolean subalgebras. Central to the framework is the notion of bidimensional join dependency, which generalizes the classical notion of join dependency by allowing the components of the join to be selected horizontally as well as vertically. Several properties of such dependencies are presented, including a generalization of many of the classical results known to be equivalent to schema acyclicity. Finally, a characterization of the nature of dependencies which participate in decompositions is presented. It is shown that there are two major types, the bidimensional join dependencies, which are tuple generating and allow tuple removal by implicit encoding of knowledge, and splitting dependencies, which simply partition the database
Generalized Horn Clause Programs
, 1994
"... This paper considers, in a general setting, an axiomatic basis for Horn clause logic programming. It characterizes a variety of "Horn-clause-like" computations, arising in contexts such as deductive databases, various abstract interpretations, and extensions to logic programming involving E-unifi ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
This paper considers, in a general setting, an axiomatic basis for Horn clause logic programming. It characterizes a variety of "Horn-clause-like" computations, arising in contexts such as deductive databases, various abstract interpretations, and extensions to logic programming involving E-unification, quantitative deduction, and inheritance, in terms of two simple operators, and discusses algebraic properties these operators must satisfy. It develops fixpoint and model-theoretic semantics in this generalized setting, and shows that the fixpoint semantics is well-defined and coincides with the model-theoretic semantics. This leads to a generalized notion of a Horn clause logic program that captures a variety of fixpoint computations proposed in different guises, and allows concise expression in the logic programming idiom of several programs that involve aggregate operations. S. Debray was supported in part by NSF grant CCR-9123520. R. Ramakrishnan's work was supported in pa...

