The main topic of this paper is multiple inheritance and conflict resolution methods in objectorientedprogramming. Our aim is to develop sound mechanisms easily understandable to any user. For this purpose, coherent...
详细信息
ISBN:
(纸本)0897915399
The main topic of this paper is multiple inheritance and conflict resolution methods in objectorientedprogramming. Our aim is to develop sound mechanisms easily understandable to any user. For this purpose, coherent behaviors of conflict resolution methods for multiple inheritance (such as supporting incrementality-monotonicity and stability under link subdivision) are introduced. We present interesting examples in which multiple inheritance known linearization algorithms (such as in CLOS and LOOPS) behave badly. Then we carefully study the conditions (on the inheritance graph) which assure good linearizations. We end with some suggestions for an incremental inheritance algorithm.
object-oriented languages involve a threefold tradeoff between runtime efficiency, expressiveness (multiple inheritance), and modularity, i.e. open-world assumption (OWA). Runtime efficiency is conditioned by both the...
详细信息
ISBN:
(纸本)9781605587660
object-oriented languages involve a threefold tradeoff between runtime efficiency, expressiveness (multiple inheritance), and modularity, i.e. open-world assumption (OWA). Runtime efficiency is conditioned by both the implementation technique and compilation scheme. The former specifies the data structures that support method invocation, attribute access and subtype testing. The latter consists of the production line of an executable from the source code. Many implementation techniques have been proposed and several compilation schemes can be considered from fully global compilation under the closed-world assumption (CWA) to separate compilation with dynamic loading under the OWA, with midway solutions. This article reviews a significant subset of possible combinations and presents a systematic, empirical comparison of their respective efficiencies with all other things being equal. The testbed consists of the PRM compiler that has been designed for this purpose. The considered techniques include C++ subobjects, coloring, perfect hashing, binary tree dispatch and caching. A variety of processors were considered. Qualitatively, these first results confirm the intuitive or theoretical abstract assessments of the tested approaches. As expected, efficiency increases as CWA strengthens. From a quantitative standpoint, the results are the first to precisely compare the efficiency of techniques that are closely associated with specific languages like C++ and EIFFEL. They also confirm that perfect hashing should be considered for implementing JAVA and. NET interfaces.
We describe our experience with the object-oriented design methodology OMT [19] applied to a project in an undergraduate software engineering course at Carnegie Mellon University. The project involved 30 students prev...
详细信息
ISBN:
(纸本)0201533723
We describe our experience with the object-oriented design methodology OMT [19] applied to a project in an undergraduate software engineering course at Carnegie Mellon University. The project involved 30 students previously unfamiliar with object-oriented modeling. They designed and implemented a system of 125 classes (27,000 lines of C++ and C code) in the relatively short time of 15 weeks. We describe the overall structure of the project and the system model, the usefulness of OMT and its impact on communication, and discuss some of the problems encountered during the development of the system.
The object-oriented philosophy creates a powerful synergy throughout the development life cycle by combining abstraction, encapsulation, and modularity. However, existing object-orientedprogramming languages arc low-...
详细信息
ISBN:
(纸本)0769512518
The object-oriented philosophy creates a powerful synergy throughout the development life cycle by combining abstraction, encapsulation, and modularity. However, existing object-orientedprogramming languages arc low-level procedural ones that are hard to program and debug. Logic programming allows computing problems to be expressed in a high-level declarative way, without giving instructions for how the problem is to be solved. However, logic programming lacks powerful Methods to model applications. In the past decades, the integration of object-orientedprogramming and logic programming has attracted a lot of interests with a number of languages proposed. But these languages fail to address some key object-oriented features properly. In this paper, we introduce a novel object-oriented logic programming language that supports nearly all key object-oriented features in a logic programming framework. We also describe its operational semantics.
暂无评论