In today's superscalar and superpipelined computers, branch instructions are the main culprits that limit the processor from issuing instructions at a peak rate. Although C++, which is an object-oriented programmi...
详细信息
In today's superscalar and superpipelined computers, branch instructions are the main culprits that limit the processor from issuing instructions at a peak rate. Although C++, which is an object-orientedprogramming language, provides great flexibility to help solve complex programming problems, the cost is a penalty in performance when compared to C. This paper compares the intrinsic branch behavior and basic branch characteristics of C++ and C benchmarks and correlates these characteristics to the performance of branch predictors. This study produced interesting insights into the differences between C++ and C benchmarks with respect to branch behavior. The basic branch characteristics showed that C++ programs have more inconsistency for the targets of branch instructions than C benchmarks. Various branch prediction schemes were tested, and the results show that although it is possible to predict whether a branch is taken or not taken with similar prediction accuracies in C++ and C, when branch target buffers (BTB) are considered, target inconsistency makes target prediction more difficult in C++. Improving the BTB to better accommodate the inconsistent Mature of C++ targets can reduce the penalty due to specific programming styles and practices of C++.
One of the means to enhance reliability and quality of software systems is testing. object-oriented methodology makes resulting software systems more reliable, maintainable and reusable. However, it also renders the t...
详细信息
One of the means to enhance reliability and quality of software systems is testing. object-oriented methodology makes resulting software systems more reliable, maintainable and reusable. However, it also renders the testing more complex and difficult. There are various sequences and combinations to execute the methods in a class or across different classes. This character leads us to select sequences of operations (namely ground terms), rather than individual operations, as test cases in object-oriented class level testing. The pairs of equivalent ground terms can be derived as test cases from a given algebraic specification for a class. If two ground terms are equivalent, but their implemented sequences produce observationally non-equivalent objects, then there is an error in the implementation. However, the set of all equivalent pairs is generally infinite. How do we select a finite number of them? Recently, we have proposed an approach to deal with this problem. In our approach, a fundamental pair is defined as a pair of equivalent terms produced by substituting all the variables on both sides of an axiom by normal forms. We prove that an implementation is consistent with respect to all equivalent terms if and only if it is consistent with respect to all fundamental pairs.
An efficient method for containing mobile code and active code for the purpose of preventing security intrusion in large-scale networks is presented. This approach also provides flexibility in programming to make the ...
详细信息
An efficient method for containing mobile code and active code for the purpose of preventing security intrusion in large-scale networks is presented. This approach also provides flexibility in programming to make the networks more dependable from security point of view. It is scalable for large-scale networks, where mobile code communication is an integral part of the systems. The approach uses object-oriented components for the ease of deployment and easy use of features like selection of a specific protocol.
Run-time systems are critical to the implementation of concurrent object oriented programming languages. The paper describes a concurrent object oriented programming language, Balinda C++, running on a distributed mem...
详细信息
Run-time systems are critical to the implementation of concurrent object oriented programming languages. The paper describes a concurrent object oriented programming language, Balinda C++, running on a distributed memory system and its run-time implementation. The run-time system is built on the top of the Nexus communication library. The tuplespace is the key to Balinda C++. A distributed tuplespace model is presented to improve data locality. Some experiments have been done to verify our model. The results indicate that our model is effective at improving system performance.
The paper identifies some of the most important execution characteristics of a recent suite of Java benchmarks (SPEC JVM98) from a bytecode perspective and while running in an interpreted environment on the Sun Ultra ...
详细信息
The paper identifies some of the most important execution characteristics of a recent suite of Java benchmarks (SPEC JVM98) from a bytecode perspective and while running in an interpreted environment on the Sun Ultra SPARC-II. We instrumented the Java Virtual Machine (JVM) to obtain detailed traces and developed a Java bytecode analyzer environment called Jaba to characterize the applications at the bytecode level. Utilizing Jaba and SPARC profiling tools, we analyze bytecode locality, instruction mix and dynamic method sizes. It is observed that less than 45 out of the 250 Java bytecodes constitute 90% of the bytecode stream. A tri-nodal distribution with peaks of 1, 10 and 27 bytecodes is observed for method size across all benchmarks in the JVM98 suite. For most of the applications, one bytecode is seen to translate into approximately 25 SPARC instructions.
The design and development of a hard real-time application is often a difficult and time-consuming task. We present a description of the hard real-time C++ language (HRTC++) for real-time programming, which incorporat...
详细信息
The design and development of a hard real-time application is often a difficult and time-consuming task. We present a description of the hard real-time C++ language (HRTC++) for real-time programming, which incorporates timing constraints consistent with the object-oriented concepts. The concepts of temporal abstract classes and virtual temporal constraints extend the inheritance mechanism of the C++ language to accommodate these real-time domain features. This significantly adapts the benefits of inheritance directly to real-time development, drawing from the contributions that inheritance renders to the reuse and consistency of software development.
The paper addresses the problem of automatically programming cooperative behaviors in a group of autonomous robots. The specific task that we consider here is for a group of distributed autonomous robots to cooperativ...
详细信息
The paper addresses the problem of automatically programming cooperative behaviors in a group of autonomous robots. The specific task that we consider here is for a group of distributed autonomous robots to cooperatively push an object toward a goal location. The difficulty of this task lies in that the task configurations of the robots with respect to the object do not follow any explicit, global control command, primarily due to certain modeling limitations as well as planning costs as in many real life applications. In such a case, it is important that the individual robots locally modify their motion strategies, and at the same time, create a desirable collective interaction between the distributed robot group and the object that can successfully bring the object to the goal location. In order to solve this problem, we have developed an evolutionary computation approach in which no centralized modeling and control is involved except a high level criterion for measuring the quality of robot task performance. The evolutionary approach to distributed robot behavioral programming is based on a fittest preserved genetic algorithm that takes into account the current positions and orientations of the robots relative to the object and the goal, and a weak global feedback on the collective task performing effect in relation to the goal if some new local motion strategies are employed by the robots.
Inheritance is one of the important features of object-orientedprogramming. The explanation of inheritance is always a challenge to the research on formal semantics of object-oriented program. In this paper, the deno...
详细信息
Inheritance is one of the important features of object-orientedprogramming. The explanation of inheritance is always a challenge to the research on formal semantics of object-oriented program. In this paper, the denotational semantics of subtyping, a kind of forms of inheritance which describes the inheritance relationship between behavioral specifications of objects, is presented. The basic idea is to view subtyping as type coercion, explaining the objects of subtype into the domain of its supertype by a type coercion function.
On the basis of analyzing the advantages of object-oriented technology in process modeling, a corporation process object class structure is defined by use of O-O method. An objected-oriented corporation process model ...
详细信息
On the basis of analyzing the advantages of object-oriented technology in process modeling, a corporation process object class structure is defined by use of O-O method. An objected-oriented corporation process model is built based on the proposed process object class. By the model the organization, activity and resource in a corporation can be integrated through processes.
暂无评论