105 0 r r xi chapter 1 introduction 11 motivation

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: ion" is both a language feature and a design methodology. The design methodology is likely to have evolved from the simulation approach that was used in Simula 14]. Among others, an important characteristic of objects is that they provide a uniform interface to all components of a system. In particular the interactions between objects occur via a single and simple concept of message passing independently of the size or structure of the objects. Object-oriented systems also provide a form of modularity, independence, abstraction, scope for sharing, etc. These are the properties that are vital for the survival and e ectiveness of modern software systems. These systems also provide a \black box" capability by hiding implementation details which is useful for practical large software development and their maintenance. Inspired by these ideas, several successful procedural languages, such as loosely typed Smalltalk 16] and strongly typed C++ 72], have emerged. Motivated by the success of these languages, the logic programming community has expended their best e ort in devising an object-oriented logic programming language in the recent years. Despite all the e orts, only limited success has been achieved in this area. However, researchers have identi ed two major issues that need to be addressed. The rst issue is developing a logical characterization of inheritance in object-oriented systems. Although the idea of inheritance is simple, it has been found to be one of the most di cult challenges towards the development 1 of an object-oriented logic programming language. The second issue is capturing encapsulation in the intended language and this has been found to be another di cult concept to formalize. The concept of encapsulation, however, is in the heart of \abstract data types" on which object-oriented systems rely. Together they, inheritance and encapsulation, form the backbone of object-oriented languages in general. The investigation into object-oriented issues in a closely related eld of logic programming, the deductive databases, is fairly recent. Traditionally, databases are mostly concerned with persistence, storage management, concurrency, recovery and ad hoc querying facility. In the recent years, researchers in the deductive database community have successfully added declarative style of programming and querying the databases to this paradigm. In this declarative environment, users are now free to design and query the database in any fashion without worrying about the cost or e ciency of the system. This means that in deductive databases, this responsibility is delegated to the system. Researchers in databases widely believe that next generation database systems will require the data modeling capability of object-oriented systems, and they agree in principle that an object-oriented database system must satisfy two criteria { it should be a database management system and it should be an object-oriented system. The second criterion translates into the following eight mandatory features that we need to accommodate in databases { (i) complex structured objects, (ii) object identity, (iii) encapsulation, (iv) types or classes, (v) inheritance, (vi) overriding and late binding, (vii) extensibility, and (viii) computational completeness 9]. Clearly, a deductive object-oriented database would also be required to accommodate all eight of these features. In this thesis we address the issue of the integration of object-orientation with deductive databases. Clearly part of the challenge is to provide linguistic instruments to capture the eight golden properties mentioned above in a declarative database language. Fortunately, for deductive databases, there has been a commonly agreed data model, namely rst-order logic, that nicely maps on to the relational data model. But unfortunately, there is no commonly agreed upon data model for object-oriented databases. Hence, we are required to devise a data model that incorporates features to support these golden properties. Furthermore, we will have to take up the issue of inheritance and encapsulation as faced by the logic programming community, since the problems are identical in these two paradigms. 2 1.2 Scope of this Thesis The broad scope of this thesis is to develop a loosely typed logic based object-oriented query language for deductive databases. This loosely typed language would allow static typing and type safety yet allow exible programming a la Smalltalk. The speci c goal of this thesis, however, is to develop a query language called ORLog and a logical semantics for the seven out of eight mandatory object-oriented features, namely { complex objects, object identity, types or classes, inheritance, overriding and late binding, extensibility and computational completeness. The only component that is not covered by this work is encapsulation. We will, however, revisit the issue of incorporating encapsulation in ORLog at the end of this thesis. Although we develop ORLog to model the seven features outlined...
View Full Document

Ask a homework question - tutors are online