Type dispatch constructs are an important feature of many programming languages. Scheme has predicates for testing the runtime type of a value. Java has a class cast expression and a try statement for switching on an ...
详细信息
Type dispatch constructs are an important feature of many programming languages. Scheme has predicates for testing the runtime type of a value. Java has a class cast expression and a try statement for switching on an exception's dass. Crucial to these mechanisms, in typed languages, is type refinement: The static type system will use type dispatch to refine types in successful branches. Considerable previous work has addressed type case constructs for structural type systems without subtyping, but these do not extend to named type systems with subtyping, as is common in objectoriented languages. Previous work on type dispatch in named type systems with subtyping has not addressed its implementation formally. This paper describes a number of type dispatch constructs that share a common theme: class cast and class case constructs in objectoriented languages, ML style exceptions, hierarchical extensible sums, and multimethods. I describe a unifying mechanism, tagging, that abstracts the operation of these constructs, and I formalise a small tagging language. After discussing how to implement the tagging language, I present a typed language without type dispatch primitives, and a give a,formal translation from the tagging language.
Like most software systems, manufacturing resource planning systems suffer from high maintenance expense. This article examines how object-oriented techniques can be used to develop systems that require less maintenan...
详细信息
Like most software systems, manufacturing resource planning systems suffer from high maintenance expense. This article examines how object-oriented techniques can be used to develop systems that require less maintenance. Emphasis is placed on reuse to lower postdevelopment costs.
This paper presents a brief outline of the Mobidget programming language, which is designed for mobile and distributed computation. An agent, which is an abstraction of a process and a protection domain, can migrate e...
详细信息
This paper presents a brief outline of the Mobidget programming language, which is designed for mobile and distributed computation. An agent, which is an abstraction of a process and a protection domain, can migrate either in whole or in part, to different nodes in the network during execution. objects in an agent may be distributed to several nodes in the network, and even if their exact location is unknown, they can be accessed from the other parts of the agent located on different nodes, Other features, such as inter-agent communication and base-specific method invocation, are also described.
Cliff Jones has proposed transformations between concrete programs and general transformation rules that increase concurrency in a system of objects, and has raised the challenge of how to prove their validity. We pre...
详细信息
Cliff Jones has proposed transformations between concrete programs and general transformation rules that increase concurrency in a system of objects, and has raised the challenge of how to prove their validity. We present a proof of correctness of the hardest of Jones's concrete transformations. The proof uses a typed pi-calculus and typed behavioral equivalences. Our type system tracks receptiveness;it guarantees that the input-end of certain channels is always ready to receive messages (at least as long as there are processes that could send such messages), and that all messages will be processed using the same continuation. This work is also intended as an example of the usefulness of pi-calculus types for reasoning. (C) 1999 John Wiley & Sons, Inc.
object-oriented frameworks are a particularly appealing approach towards software reuse. An object-oriented framework represents a design for a family of applications, where variations in the application domain are ta...
详细信息
object-oriented frameworks are a particularly appealing approach towards software reuse. An object-oriented framework represents a design for a family of applications, where variations in the application domain are tackled by filling in the so-called hot spots. However, experience has shown that the current object-oriented mechanisms (class inheritance and object composition) are not able to elegantly support the "fill in the hot spot" idea. This paper introduces class composition as a more productive approach towards hot spots, offering all of the advantages of both class inheritance and object composition but involving extra work for the framework designer. (C) 1999 John Wiley & Sons, Inc.
This paper presents the design and development of OpenRob - an open architecture platform for control system development of robots, which provides a one-stop solution for model building, controller design and numerica...
详细信息
This paper presents the design and development of OpenRob - an open architecture platform for control system development of robots, which provides a one-stop solution for model building, controller design and numerical simulation for the ease of real-time implementation. By taking advantages of object oriented programming styles and Dynamic Link Library (DLL) technology, this system provides a friendly Graphic User Interface (GUI) as an open environment for user to further develop the custom robot models, trajectory planning schemes and control algorithms into the system for simulation study and real time control implementation. Several case studies are given to demonstrate the functionality of this platform.
We discuss the design and implementation of Egida, an object-oriented toolkit designed to support transparent rollback-recovery. Egida exports a simple specification language that can be used to express arbitrary roll...
详细信息
ISBN:
(纸本)0780357639
We discuss the design and implementation of Egida, an object-oriented toolkit designed to support transparent rollback-recovery. Egida exports a simple specification language that can be used to express arbitrary rollback recovery protocols. From this specification, Egida automatically synthesizes an implementation of the specified protocol by gluing together the appropriate objects from an available library of 'building blocks'. Egida is extensible and facilitates rapid implementation of rollback recovery protocols with minimal programming effort. We have integrated Egida with the MPICH implementation of the MPI standard. Existing MPI applications can take advantage of Egida without any modifications: fault-tolerance is achieved transparently - all that is needed is a simple re-link of the MPI application with Egida.
An in-depth analysis of the semantics of aggregation in object modelling leads to the identification of the primary axioms of whole part;irreflexivity at the instance level;antisymmetry at both instance and type level...
详细信息
An in-depth analysis of the semantics of aggregation in object modelling leads to the identification of the primary axioms of whole part;irreflexivity at the instance level;antisymmetry at both instance and type level;and in which the aggregate object has one or more emergent and resultant properties. Other aspects of aggregation are either a natural consequence of these axioms or else are secondary. Each secondary characteristic defines a partition and thus gives the modelled aggregation relationship a specific `flavour'.
Component extensions must semantically conform to the components they extend to guarantee consistency of the extended system. Semantic conformance usually means preservation of observable properties while decreasing n...
详细信息
Component extensions must semantically conform to the components they extend to guarantee consistency of the extended system. Semantic conformance usually means preservation of observable properties while decreasing nondeterminism;in the presence of explicit invariants it also involves preservation of invariants by the extended and the extending components. Depending on the reuse technique employed for constructing extensions, the requirements that must be imposed on components to guarantee consistency vary. We concentrate on the issue of ensuring consistency of extensions with forwarding as the reuse technique, formulating requirements that allow consistent extension of components in the presence of explicit invariants. Also, we discuss additional problems arising with the use of inheritance and propose solutions to these problems.
A common bottleneck for numericists is the complexity of the implementation programs. The usual procedural programming approach demands time and effort to program, develop, and test new formulations. This article addr...
详细信息
A common bottleneck for numericists is the complexity of the implementation programs. The usual procedural programming approach demands time and effort to program, develop, and test new formulations. This article addresses a particularly involved subject area, that of spectral element methods with mortars for large-scale applications. It is shown that the implementation burden can be alleviated by resorting to an object-oriented design approach. A toolbox consisting of a set of object-oriented classes is discussed. In order to solve a particular problem at hand, the user proceeds by creating an application where he/she loosely activates objects of the classes. When an operation exceeds the functionalities of the classes, the user can enrich these classes or create new ones. Practical examples are provided. Issues concerning computational efficiency and concurrent execution are addressed.
暂无评论