Trellis recognizes the importance of type composition, encapsulation, and reusability. To make these features worthwhile in production environments, Trellis adopts strong-typing to verify that programs are correctly c...
详细信息
ISBN:
(纸本)0201533723
Trellis recognizes the importance of type composition, encapsulation, and reusability. To make these features worthwhile in production environments, Trellis adopts strong-typing to verify that programs are correctly constructed. Some compromises have been made, mostly in the name of simplicity for the programmer. In particular, the lack of separate inheritance and subtyping hierarchies, and the inability to generate source independent libraries are problematic. Trellis has, however, erred on the side of conservatism and guarantees type-safety and subtype-compatibility while providing much of the reuse and modeling benefits of the object-oriented paradigm.
Most programming in the Garnet system uses a declarative style that eliminates the need to write new methods. One implication is that the interface to objects is typically through their data values. This contrasts sig...
详细信息
ISBN:
(纸本)0201533723
Most programming in the Garnet system uses a declarative style that eliminates the need to write new methods. One implication is that the interface to objects is typically through their data values. This contrasts significantly with other objectsystems where writing methods is the central mechanism of programming. Four features are combined in a unique way in Garnet to make this possible: the use of a prototype-instance object system with structural inheritance, a retained-object model where most objects persist, the use of constraints to tie the objects together, and a new input model that makes writing event handlers unnecessary. The result is that code is easier to write for programmers, and also easier for tools, such as interactive, direct manipulation interface builders, to generate.
object-oriented models are a popular basis for supporting uniform sharing of data and services in operating systems, distributed programmingsystems, and database systems. We term systems that use objects for these pu...
详细信息
ISBN:
(纸本)0201533723
object-oriented models are a popular basis for supporting uniform sharing of data and services in operating systems, distributed programmingsystems, and database systems. We term systems that use objects for these purposes object sharing systems. Operating systems in common use have nonuniform addressing models, making the uniform object naming required by object sharing systems expensive and difficult to implement. We argue that emerging 64-bit architectures make it practical to support uniform naming at the virtual addressing level, eliminating a key implementation problem for object sharing systems. We describe facilities for object-based sharing of persistent data and services in Opal, an operating system we are developing for paged 64-bit architectures. The distinctive feature of Opal is that object sharing is supported in a runtime library, above a single virtual address space that maps all primary and secondary storage in a local area network.
Prototype-based languages are currently proposed as a substitute to class-based languages for a higher flexibility in manipulating objects. These languages are all based on a similar set of basic principles: object-ce...
详细信息
ISBN:
(纸本)0201533723
Prototype-based languages are currently proposed as a substitute to class-based languages for a higher flexibility in manipulating objects. These languages are all based on a similar set of basic principles: object-centered representation, dynamic addition (deletion) of slots, cloning and message delegation. But they all differ in the precise interpretation of these principles and nobody has yet considered the semantic issues raised by their combination. In this paper, we propose a new taxonomy of prototype-based languages, enhancing the Treaty of Orlando by now discussing issues associated with the different semantics of the identified prototype-based languages. From this taxonomy, we extract a constructive proposal for the design of a new prototype-based language. This proposal is the chief result of this paper, it suggests one set of primitives which is regarded as the best to provide a clean, useful and coherent prototype-based computational model. We finally describe an implementation of most interesting language alternatives in the form of a Smalltalk-80 platform. This platform establishes an operational semantics for the basic primitives and -more interesting - validates our previous taxonomy by implementing it as a class hierarchy. Obviously, this platform has been used to relate in the same formalism the semantics of different languages with each others. For instance, the programming models of existing languages, such as Self, objectLisp and Actra's examplars, are faithfully derived as subclasses in this hierarchy.
We investigate a formal model for reasoning about real-time object-oriented computations. The model is an extension of CCS with the notion of time, called RtCCS (Real-time Calculus of Communication systems). It can na...
详细信息
ISBN:
(纸本)0201533723
We investigate a formal model for reasoning about real-time object-oriented computations. The model is an extension of CCS with the notion of time, called RtCCS (Real-time Calculus of Communication systems). It can naturally model real-time concurrent objects as communicating processes and represent the timed properties of objects. We define two timed equivalences based on CCS's bisimulation and derive algebraic laws for reasoning about real-time processes. The equivalences provide a formal framework for analyzing the behavior and timing of real-time computations. Also, we define a sound and complete equational proof system for finite processes. Some examples in RtCCS are shown in order to demonstrate its usefulness.
These are the highlights of a successfully completed application of object-oriented software development for a new product. The project was of medium size, the duration was less than 24 months (from the end of the req...
详细信息
ISBN:
(纸本)0201533723
These are the highlights of a successfully completed application of object-oriented software development for a new product. The project was of medium size, the duration was less than 24 months (from the end of the requirements specification to product shipment), and the average team size was 8-10 software engineers. We discuss how the team dealt with major new aspects: a different paradigm, a different programming language, a different user interface environment, and a different development environment. In spite of all these novelties and in spite of the fact that almost twice as much code was produced as was predicted, the project schedule slipped only by 20%. We touch upon all phases of the development life cycle: requirement capture, OO analysis, OO design, OO implementation and the verification phase. Some management perspectives are addressed as well.
Generational garbage collectors are able to achieve very small pause times by concentrating on the youngest (most recently allocated) objects when collecting, since objects have been observed to die young in many syst...
详细信息
ISBN:
(纸本)0201533723
Generational garbage collectors are able to achieve very small pause times by concentrating on the youngest (most recently allocated) objects when collecting, since objects have been observed to die young in many systems. Generational collectors must keep track of all pointers from older to younger generations, by `monitoring' all stores into the heap. This write barrier has been implemented in a number of ways, varying essentially in the granularity of the information observed and stored. Here we examine a range of write barrier implementations and evaluate their relative performance within a generation scavenging garbage collector for Smalltalk.
Widespread acceptance of concurrent object-orientedprogramming in the field can only be expected if smooth integration with sequential programming is achieved. This means that a common language base has to be used, w...
详细信息
ISBN:
(纸本)0201533723
Widespread acceptance of concurrent object-orientedprogramming in the field can only be expected if smooth integration with sequential programming is achieved. This means that a common language base has to be used, where the concurrent syntax differs as little as possible from the sequential one but is associated with a `natural' concurrent semantics that makes library support for concurrency superfluous. In addition, not only should sequential classes be reusable in a concurrent context, but concurrent classes should also be reusable in a sequential context. It is suggested that concurrency annotations be inserted into otherwise sequential code. They are ignored by a sequential compiler, but a compiler for the extended concurrent language will recognize them and generate the appropriate concurrent code. The concurrent version of the language supports active and concurrent objects and favours a declarative approach to synchronization and locking which solves typical concurrency problems in an easier and more readable way than previous approaches. Concurrency annotations are introduced using Eiffel as the sequential base.
The hierarchy of interfaces implicit in the Smalltalk-80 collection class library is computed and analyzed. The interface hierarchy is independent of the inheritance hierarchy because methods are frequently deleted by...
详细信息
ISBN:
(纸本)0201533723
The hierarchy of interfaces implicit in the Smalltalk-80 collection class library is computed and analyzed. The interface hierarchy is independent of the inheritance hierarchy because methods are frequently deleted by subclasses, and because unrelated classes sometimes implement the same messages. Specifications of the interfaces are developed, revealing subtle relationships among messages and their methods. The specifications help identify several kinds of problems in the library: inherited methods that violate the subclass invariant;methods that have the same name but unrelated behaviors;methods that have the same (or related) behavior but different names. This exercise demonstrates the utility of interfaces and specifications, and suggests improvements to the collection class library structure.
暂无评论