239 research outputs found
An Object-Oriented Language-Database Integration Model: The Composition-Filters Approach
This paper introduces a new model, based on so-called object-composition filters, that uniformly integrates database-like features into an object-oriented language. The focus is on providing persistent dynamic data structures, data sharing, transactions, multiple views and associative access, integrated with the object-oriented paradigm. The main contribution is that the database-like features are part of this new object-oriented model, and therefore, are uniformly integrated with object-oriented features such as data abstraction, encapsulation, message passing and inheritance. This approach eliminates the problems associated with existing systems such as lack of reusability and extensibility for database operations, the violation of encapsulation, the need to define specific types such as sets, and the incapability to support multiple views. The model is illustrated through the object-oriented language Sina
Database Programming in Machiavelli - A Polymorphic Language With Static Type Inference
Machiavelli is a polymorphically typed programming language in the spirit of ML, but supports a different type inferencing that makes its polymorphism somewhat more general than that of ML and appropriate for database applications. In particular, a function that selects a field f of a records is polymorphic in the sense that it can be applied to any record which contains a field f with the appropriate type. When combined with a set data type and database operations including join and projection, this provides a natural medium for relational database programming. Moreover, by implementing database objects as reference types and generating the appropriate views - sets of structures with identity - we can achieve a degree of static type checking for object-oriented databases
Recommended from our members
User interface development and software environments : the Chiron-1 system
User interface development systems for software environments have to cope with the broad, extensible and dynamic character of such environments, must support internal and external integration, and should enable various software development strategies. The Chiron-1 system adapts and extends key ideas from current research in user interface development systems to address the particular demands of software environments. Important Chiron-1 concepts are: separation of concerns, dynamism, and open architecture. We discuss the requirements on such user interface development systems, present the Chiron-1 architecture and a scenario of its usage, detail the concepts it embodies, and report on its design and prototype implementation
Object Management for Persistence and Recoverability
PhD ThesisAs distribution becomes commonplace, there is a growing requirement for
applications that behave reliably when node or network failures occur. To
support reliability, operations on the components of a distributed application may
be declared to occur within the scope of an atomic action. This thesis describes
how atomic actions may be supported in an environment consisting of
applications that operate on objects.
To support the failure atomicity and permanence of effect properties of an
atomic action, the objects accessed within the scope of an atomic action must be
recoverable and persistent. This thesis describes how these properties may be
added to the class of an object. The approach adopted is to provide a class that
implements recovery and persistence mechanisms, and derive new classes from
this base class. By refining inherited operations so that recovery and persistence
is specific to that class, recoverable and persistent objects may be easily produced.
This thesis also describes how an atomic action may be implemented as a
class, so that instances of the class are atomic actions which manage the
recoverable and persistent objects. Multiple instance declarations produce nested
atomic actions, and the atomic action class also inherits persistence so that shortterm
commit information may be saved in an object store which is used to
maintain the passive state of persistent objects.
Since the mechanisms and classes that support recovery, persistence, and
atomic actions are constructed using the feature of an object-oriented language,
they may be implemented in environments that provide suitable support for
objects and object-oriented programming languages.Science and
Engineering Research Council,
SERC/Alve
New Inheritance Models That Facilitate Source Code Reuse in Object-oriented Programming
Code reusability is a primary objective in the development of software systems. The object-oriented programming methodology is one of the areas that facilitate the development of software systems by allowing and promoting code reuse and modular designs. Object-oriented programming languages (OOPLs) provide different facilities to attain efficient reuse and reliable extension of existing software components. Inheritance is an important language feature that is conducive to reusability and extensibility. Various OOPLs provide different inheritance models based on different interpretations of the inheritance notion. Therefore, OOPLs have different characteristics derived from their respective inheritance models. This dissertation is concerned with solutions for three major problems that limit the utilization of inheritance for code reusability. The range of object -oriented applications and thus the usage of object-oriented programming in general is also discussed. The three major problems are: 1) the relationship between inheritance and other related issues such as encapsulation, access techniques, visibility of inheritance, and subtyping; 2) the hierarchical structure imposed by inheritance among classes; and 3) the accessibility of previous versions of the modified methods defmed in classes located at higher levels of the inheritance structure than the parent classes. 1be proposed solutions for these problems are presented as new inheritance models that facilitate code reuse and relax the restrictions imposed on inheritance models by languages. A survey and taxonomy of the conventional inheritance models, and a comparison and analysis of some of the common OOPLs are also presented in the dissertation.Computer Scienc
A database model for object dynamics.
Object-oriented database systems, Dynamic object re-classification, Object role model, Dynamic class hierarchy, Object migration
Object-Oriented Programming Language Facilities for Concurrency Control
Concurrent object-oriented programming systems require support for concurrency control, to enforce consistent commitment of changes and to support program-initiated rollback after application-specific failures. We have explored three different concurrency control models -- atomic blocks, serializable transactions, and commit-serializable transactions -- as part of the MELD programming language. We present our designs, discuss certain programming problems and implementation issues, and compare our work on MELD to other concurrent object-based systems
Fast object operations in a persistent programming system
Thesis (M.S.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 1994.Includes bibliographical references (p. 77-79).by Andrew C. Myers.M.S
Reliability issues in the design of distributed object-based architectures
PhD ThesisThis thesis is aimed at enhancing the existing set of techniques for building
distributed systems, specifically from the point of view of fault-tolerant com-
puting.
Reliability is of fundamental importance in the design and operation of dis-
tributed systems, as an increasing number of computers are employed in the
automation of various essential services. In the past decade, much research
effort has been concerned with the object-based methodology for the design
and implementation of reliable distributed systems.
This thesis describes three contributions to this effort. First, it is shown
that object-based programming features can in fact be introduced into pro-
cedural languages provided that these languages are endowed with certain
facilities. Then, work is discussed which illustrates the relationship
between distributed object-based architectures and an apparently different
form of distributed architectures based on processes. This work puts the
notion of object-based architectures into a new perspective, which shows
that the object-based philosophy and the process-based philosophy are the
dual of each other.
Finally, an important aspect of the design of an object-based distributed
architecture is investigated, that of automatic garbage collection. A distri-
buted garbage collection scheme is described that handles fault tolerance by
an extension of the technique commonly employed to detect unwanted com-
putations in distributed architectures. The scheme proposed can also be
seen as yet a further illustration of the link between object-based and
process-based architectures.Royal Signals and Radar Establishment of the U.K.
Ministry of Defence.
Italian Consiglio Nazionale delle Ricerch
Language constructs for managing change in process-centered environments
Change is pervasive during software development, af-fecting objects, processes, and environments. In pro-cess centered environments, change management can be facilitated by software-process programming, which for-malizes the representation of software products and pro-cesses using software-process programming languages (SPPLs). To fully realize this goal SPPLs should in-clude constructs that specifically address the problems of change management. These problems include lack of representation of inter-object relationships, weak se-mantics for inter-object relationships, visibility of im-plementations, lack of formal representation of soft-ware processes, and reliance on programmers to manage change manually
- …