OoLALA is an object-oriented linear algebra library designed to reduce the effort of software development and maintenance. In contrast with traditional (Fortran-based) libraries, it provides two high abstraction level...
详细信息
OoLALA is an object-oriented linear algebra library designed to reduce the effort of software development and maintenance. In contrast with traditional (Fortran-based) libraries, it provides two high abstraction levels that significantly reduce the number of implementations necessary for particular linear algebra operations. Initial performance evaluations of a Java implementation of OoLALA show that the two high abstraction levels are not competitive with the low abstraction level of traditional libraries. These initial performance results motivate the present contribution-the characterization of a set of storage formats (data structures) and matrix properties (special features) for which implementations at the two high abstraction levels can be transformed into implementations at the low (more efficient) abstraction level. Copyright (c) 2005 John Wiley & Sons, Ltd.
Wikis are often implemented using string-based approaches to parse and generate their pages. While such approaches work well for simple wikis, they hamper the customization and adaptability of wikis to the variety of ...
详细信息
ISBN:
(纸本)9781595931115
Wikis are often implemented using string-based approaches to parse and generate their pages. While such approaches work well for simple wikis, they hamper the customization and adaptability of wikis to the variety of end-users when more sophisticated needs are required (i.e., different output formats, user-interfaces, wiki management, security policies,...). In this paper we present SmallWiki, the second version of a fully object-oriented implementation of a wiki. SmallWiki is implemented with objects from the top to the bottom and it can be customized easily to accommodate new needs. In addition, SmallWiki is based on a powerful meta-description called Magritte that allows one to create user-interface elements declaratively.
Plasma simulation is an important example of a high-performance computing application where computer science issues are of great relevance. In a plasma, each particle, electron or ion, interacts with the external fiel...
详细信息
Plasma simulation is an important example of a high-performance computing application where computer science issues are of great relevance. In a plasma, each particle, electron or ion, interacts with the external fields and with other particles in ways that can be readily and effectively emulated using object-oriented programming. However, the great cost of plasma simulations has traditionally discouraged object-oriented implementations due to their perceived inferior performance compared with classic procedural FORTRAN or C. In the present paper, we revisit this issue. We have developed a Java particle-in-cell code for plasma simulation, called Parsek. The paper considers different choices for the object orientation and tests their performance. We find that coarse-grained object orientation is faster and practically immune from any degradation compared with a standard procedural implementation (with static classes). The loss in performance for a fine-grained object orientation is a factor of about 50%, which can be almost completely eliminated using advanced Java compilation techniques. The Java code Parsek also provides an interesting realistic application of high-performance computing to compare the performance of Java with FORTRAN. We have conducted a series of tests considering various Java implementations and various FORTRAN implementations. We have also considered different computer architectures and different Java Virtual Machines and FORTRAN compilers. The conclusion is that with Parsek, object-oriented Java can reach CPU speed performances more or less comparable with procedural FORTRAN. This conclusion is remarkable and it is in agreement with the most recent benchmarks, but is at variance with widely held misconceptions about the alleged slowness of Java. Copyright (c) 2005 John Wiley & Sons, Ltd.
Micro patterns are similar to design patterns, except that micro patterns are stand at a lower, closer to the implementation, level of abstraction. Micro patterns are also unique in that they are mechanically recogniz...
详细信息
ISBN:
(纸本)9781595930316
Micro patterns are similar to design patterns, except that micro patterns are stand at a lower, closer to the implementation, level of abstraction. Micro patterns are also unique in that they are mechanically recognizable, since each such pattern can be expressed as a formal condition on the structure of a *** paper presents a catalog of 27 micro-patterns defined on Java classes and interfaces. The catalog captures a wide spectrum of common programming practices, including a particular and (intentionally restricted) use of inheritance, immutability, data management and wrapping, restricted creation, and emulation of procedural-, modular-, and even functional- programming paradigms with objectoriented constructs. Together, the patterns present a set of prototypes after which a large portion of all Java classes and interfaces are modeled. We provide empirical indication that this portion is as high as 75%.A statistical analysis of occurrences of micro patterns in a large software corpus, spanning some 70,000 Java classes drawn from a rich set of application domains, shows, with high confidence level that the use of these patterns is not random. These results indicate consciousness and discernible design decisions, which are sustained in the software evolution. With high confidence level, we can also show that the use of these patterns is tied to the specification, or the purpose, that the software *** traceability, abundance and the statistical significance of micro pattern occurrence raise the hope of using the classification of software into these patterns for a more founded appreciation of its design and code quality.
This paper exploits object-oriented implementation techniques to facilitate the development of computer codes for solving systems of coupled partial differential equations. We show how to build a simulator for equatio...
详细信息
This paper exploits object-oriented implementation techniques to facilitate the development of computer codes for solving systems of coupled partial differential equations. We show how to build a simulator for equation systems by merging independent solvers for each equation that enters the system. The main goal is to obtain a rapid, robust, and reliable software development process with extensive reuse of implemented code. Coupled heat and fluid flow in pipes is used as example for illustrating the implementation techniques. We also present some results for the particular case of temperature-dependent generalized Newtonian fluid flow between two nonconcentric cylinders. The general applicability of the approach is discussed.
The Finite Element Method (FEM) has become the most popular numerical method for solving a wide variety of complex engineering problems. However, from the programming point of view, when a FEM program has a lot of com...
详细信息
The Finite Element Method (FEM) has become the most popular numerical method for solving a wide variety of complex engineering problems. However, from the programming point of view, when a FEM program has a lot of computational capabilities it is very difficult to maintain and enlarge the program codes. Recently the object-oriented programming paradigm has become a powerful method for overcoming such difficulties. This paper contains the description of an open environment for the FEM, written in C+ +, with explanations about how the sensitivity analysis and the non-linear material behaviour (damage models) have been taken into account. (C) 2001 Elsevier Science Ltd. All rights reserved.
This paper will describe one approach to the design and implementation of a multibody systems analysis code using an object-oriented architecture. The principal objective is to show the adequacy between object-oriente...
详细信息
This paper will describe one approach to the design and implementation of a multibody systems analysis code using an object-oriented architecture. The principal objective is to show the adequacy between object-oriented programming and the finite element method used for the treatment of three-dimensional multibody flexible mechanisms. It will show that object-oriented programming greatly simplifies the choice and the implementation of other formalisms concerning polyarticulated systems, thus conferring high flexibility and adaptability to the developed software. (C) 2004 Elsevier Ltd. All rights reserved.
VORPAL is a new plasma simulation code designed for maximum flexibility through use of advance C++ techniques. Through use of inheritance, VORPAL incorporates multiple models for the plasma and electromagnetic fields....
详细信息
VORPAL is a new plasma simulation code designed for maximum flexibility through use of advance C++ techniques. Through use of inheritance, VORPAL incorporates multiple models for the plasma and electromagnetic fields. The plasma models include both particle-in-cell and fluid models. Through C++ meta-template programming a single code can be used to simulate one-, two-, or three-dimensional systems with no loss of performance. VORPAL can also be run in either serial or parallel, with the latter using a general domain decomposition. A new fluid algorithm that allows for regions of zero density was developed and incorporated into the code. VORPAL simulation results for the generation of laser wake fields through laser-plasma interaction are presented. (C) 2003 Elsevier Inc. All rights reserved.
With the rapid escalation in design complexity of real-time embedded software, application frameworks have become an almost indispensable tool because they greatly ease the work of a designer by performing tedious tas...
详细信息
With the rapid escalation in design complexity of real-time embedded software, application frameworks have become an almost indispensable tool because they greatly ease the work of a designer by performing tedious tasks on behalf of a designer and by reusing semi-complete application codes. To ensure code quality and reliability, computer-aided analysis is also performed for the generated application software in some frameworks. However, when the target is real-time embedded systems, the correctness of the software in terms of satisfying all user-given real-time and embedded constraints becomes a primary objective for such frameworks. To guarantee correctness, formal verification in the form of model checking is a viable solution due to its full automation capability. Nevertheless, little is known from either the existing literature or industrial experience on how formal verification can be integrated into an object-oriented application framework, whose primary purpose was previously only to design and generate application software. This work contributes to the state-of-art technology by showing how a design framework and a verification framework can be integrated. Three main issues are tackled: (i) what to verify?;(ii) when to verify?;and (iii) how to verify? As a solution to these three issues the authors propose a mapping from the object-oriented model to a formal model, a schedule-verify-map strategy and a compositional verification methodology, respectively. These have been implemented in a component-based framework and experiments performed to illustrate their feasibility. Due to the incorporation of industry de-facto standards such as real-time unified modelling language and real-time Java, in the proposed techniques it should now be possible for an engineer to gain access to theoretically proven formal verification technologies that would otherwise be considered to be inaccessible to an engineer unskilled in verification techniques.
暂无评论