Relationships between objects are almost as important to designs as the objects themselves. Most programming languages do not support relationships well, so programmers must implement relationships in terms of more pr...
详细信息
ISBN:
(纸本)9783879408139
Relationships between objects are almost as important to designs as the objects themselves. Most programming languages do not support relationships well, so programmers must implement relationships in terms of more primitive constructs. This paper presents a selection of proto-patterns which describe how aspects can be used to model relationships within programs. By using these patterns, programs and designs can be made smaller, more flexible, and easier to understand and maintain.
object-orientedprogramming is well-suited to such data-intensive application domains as CAD/CAM, AI, and OIS (office information systems) with multimedia documents. At MCC we have built a prototype object-oriented da...
详细信息
It is now well established that the device scaling predicted by Moore's Law is no longer a viable option for increasing the clock frequency of future uniprocessor systems at the rate that had been sustained during...
详细信息
It is now well established that the device scaling predicted by Moore's Law is no longer a viable option for increasing the clock frequency of future uniprocessor systems at the rate that had been sustained during the last two decades. As a result, future systems are rapidly moving from uniprocessor to multiprocessor configurations, so as to use parallelism instead of frequency scaling as the foundation for increased compute capacity. The dominant emerging multiprocessor structure for the future is a Non- Uniform Cluster Computing (NUCC) system with nodes that are built out of multi-core SMP chips with non-uniform memory hierarchies, and interconnected in horizontally scalable cluster configurations such as blade servers. Unlike previous generations of hardware evolution, this shift will have a major impact on existing software. Current OO language facilities for concurrent and distributed programming are inadequate for addressing the needs of NUCC systems because they do not support the notions of non-uniform data access within a node, or of tight coupling of distributed nodes. We have designed a modern object-orientedprogramming language, X10, for high performance, high productivity programming of NUCC systems. A member of the partitioned global address space family of languages, X10 highlights the explicit reification of locality in the form of places;lightweight activities embodied in async, future, foreach, and ateach constructs;a construct for termination detection (finish);the use of lock-free synchronization (atomic blocks);and the manipulation of cluster-wide global data structures. We present an overview of the X10 programming model and language, experience with our reference implementation, and results from some initial productivity comparisons between the X10 and JAVA™ languages. Copyright 2005 ACM.
The design space of object-based languages is characterized in terms of objects, classes, inheritance, data abstraction, strong typing, concurrency, and persistence. Language classes (paradigms) associated with intere...
详细信息
This poster reports on work in progress on the implication of thinking and learning styles on the modelling of object-oriented Systems. In particular, analyses of learning modalities are presented and then considered ...
详细信息
This poster reports on work in progress on the implication of thinking and learning styles on the modelling of object-oriented Systems. In particular, analyses of learning modalities are presented and then considered in light of using the Unified Modelling Language (UML) as a tool for system modelling. The results of testing UML CASE tool learners will be available before the conference.
Patterns and frameworks are two approaches to the development of both new and evolving software systems. An implicit hypothesis is that `discovery costs' are reduced by leveraging knowledge previously collected, a...
详细信息
Patterns and frameworks are two approaches to the development of both new and evolving software systems. An implicit hypothesis is that `discovery costs' are reduced by leveraging knowledge previously collected, analyzed, organized, and packaged. `Discovery costs' (or `getting started' costs) include both the costs of understanding the problem to be solved and the cost of understanding the tools, methods, existing software, etc. For large, multi-year development projects in industries such as defense or telecommunications, discovery costs can dominate the overall cost (and risk) of software development. This panel will share its experience and perspectives with the audience with a discussion initiated by the following questions: Have patterns and frameworks really delivered on their claims for reducing discovery costs? Can current best-practices be characterized as meaningful or marginal (what are the measures)? What are the discovery cost factors where frameworks and patterns appear to deliver the biggest bang for the buck? While mature pattern languages and frameworks may reduce the learning curve, they do not eliminate it. How much of a learning curve is required to develop a sufficient shared context with the authors of a set of patterns or a framework?
In this paper we demonstrate that effective structure optimization is essential to improve code quality and reduce compilation overhead for object-oriented programs. We propose to address this problem by using an effe...
详细信息
ISBN:
(纸本)0769523218
In this paper we demonstrate that effective structure optimization is essential to improve code quality and reduce compilation overhead for object-oriented programs. We propose to address this problem by using an effective representation of structure operation, folding indirect memory accesses to structure fields, flattening structures judiciously, and allowing more aggressive procedure inlining, These techniques enable the existing scalar optimizations, which were well tuned for the traditional imperative languages, to work effectively on object-oriented programs, allowing them to make better use of the performance enhancing-features available on modern processors. We have implemented this strategy in an SSA based global optimization framework in the Open Research Compiler, targeting the Itanium Processor Family. The experimental results with representative C++ benchmarks show that the applications' performance can be improved significantly. For instance, Eon's performance is improved by 35.6%, while the execution time of the Stepanov benchmark is reduced by a factor of 24.
Discusses the estimation of the effort needed to update programs according to a given requirement change. In object-oriented prototyping development (OO prototyping), the requirement changes occur frequently and regul...
详细信息
CRC-cards have been adopted by many educators to teach early design in their object-orientedprogramming courses. In this paper we discuss our experiences using the CRC-card approach in upper secondary school and unde...
详细信息
ISBN:
(纸本)1920017119
CRC-cards have been adopted by many educators to teach early design in their object-orientedprogramming courses. In this paper we discuss our experiences using the CRC-card approach in upper secondary school and undergraduate programming courses. Although our experiences are generally positive, we have noticed many problems and issues that have largely gone unnoticed in the literature. It is therefore important to apply the CRC-card approach very carefully to avoid building up or reinforcing misconceptions about object-orientation. In this paper we discuss two issues in details. One issue belongs to unintentionally mixing of learning goals. The other issue is the usage of CRC-cards as object surrogates during the scenario roleplay, which is a major source for class/object confusion. To avoid these problems, we introduced a new type of diagram to support the roleplay activities. We also propose to carefully distinguish two steps: Introducing the approach and the notations, and actually using CRC-cards as a modelling tool. The first step aims to introduce the CRC-cards approach itself and the use of CRC-cards to achieve a basic understanding of objectoriented concepts. The cards are used as a learning medium to foster object-oriented thinking. In the second step, CRC-cards are used to gain understanding of a domain, learn how to analyse and conceptualise a domain, test a model with roleplay and to introduce more specific object-oriented concepts.
object-oriented languages such as Java and C# provide interfaces to support a restricted form of multiple inheritance. Existing low-level typed intermediate languages for object-oriented languages, however, either do ...
详细信息
ISBN:
(纸本)9781605585406
object-oriented languages such as Java and C# provide interfaces to support a restricted form of multiple inheritance. Existing low-level typed intermediate languages for object-oriented languages, however, either do not support interfaces or require non-standard interface implementations. This paper describes a low-level typed intermediate language that can express the standard interface implementation strategies based on interface tables (itables). The language can faithfully model itables, the standard itable-based interface method invocation, and interface cast. The type system is sound and the type checking is decidable.
暂无评论