Reflective architectures support the incremental development of object-oriented systems, but they are mostly implemented in the interpretation-based languages. This paper presents a new reflective architecture, XDRC++...
详细信息
Reflective architectures support the incremental development of object-oriented systems, but they are mostly implemented in the interpretation-based languages. This paper presents a new reflective architecture, XDRC++,for reflective programming in the C++ language. XDRC++ provides a run-time system constructed by a collection of built-in classes, and the reflective facilities to switch between methods and meta-methods at run-time. All these facilities are constructed in an integrated way using only the compile-time mechanisms of C++. In XDRC++ we propose a new viewpoint that the object identity is an object. The identity of an object is then a meta-object carrying on the type-free reflective computations about the object. Two prototypes of XDRC++ for distinct C++ compilers have been implemented
Identifying the hotspots for damage initiation in large-scale composite structure designs presents a significant challenge due to the high modelling cost. For most industrial applications, the finite element (FE) mode...
详细信息
Identifying the hotspots for damage initiation in large-scale composite structure designs presents a significant challenge due to the high modelling cost. For most industrial applications, the finite element (FE) models are often coarsely meshed with shell elements and used to predict the global stiffness and internal loads. Because of the lack of detailed descriptions for the composite materials and 3D stress states, most of the established failure criteria are not applicable. In this work we present an Abaqus plugin tool which implements a framework to identify the hotspots by using a pre-computed database generated for specific, heavily-repeated feature types based on a given structural model. Developed with an object-oriented implementation in Python, this software is split into two main parts, specifically for feature generation and structural analysis. The pre-computed model presents a full 3D description for the considered feature and works as a submodel to the coarse structure model driven by a one-way transfer of the boundary conditions. The presented framework is an analysis tool for efficient sizing of large-scale composite structures, as it enables 3D damage analysis of the structures in critical zones with significant savings of the modelling and computational cost. The results are compared with conventional FE modelling and satisfactory agreement is observed. In addition, the software also enables the pre-computed database to be stored in an HDF5 data file for further reuse on new structures with the same feature.
This article analyzes creation methods of automated design system, presents design system of a house foundation from blocks. The creation methods of automated design system of a house foundation from blocks are discov...
详细信息
This article analyzes creation methods of automated design system, presents design system of a house foundation from blocks. The creation methods of automated design system of a house foundation from blocks are discovered with Unified Modeling Language. Analyzed objects-classes: block, specification, model. Graphical system can design foundation, form specification of objects and create 3D model of house foundation. There are several types and different dimensions of concrete blocks. The program optimally arranges selected blocks so that monolithic parts will be minimal volume. Program selects a house foundation blocks from database by using ActiveX Data objects technology, which by programming method connects drawing and database. Drawing's graphical objects have additional data from which exchange of data between graphical system and database is executed. Visualization system and example of house foundation from blocks project with specifications is presented. Creation problems of automated design system are discussed and conclusions are made.
Design patterns are applied frequently during software evolution in order to make the software more flexible and amenable to extension. One little-studied aspect of design patterns is their propensity to increase run-...
详细信息
Design patterns are applied frequently during software evolution in order to make the software more flexible and amenable to extension. One little-studied aspect of design patterns is their propensity to increase run-time energy consumption due to the indirection and additional structure they introduce. In this paper we study the impact of the Visitor pattern on energy efficiency. The Visitor pattern separates an algorithm from the objects it acts upon and improves maintainability by placing each algorithm within a single visitor class. This is at the cost of increased indirection due to the double dispatch required when the algorithm is invoked. We experimentally investigate the energy impact of varying the implementation of this pattern, and of removing the pattern entirely from software written in Java and C++. In our results we observe energy consumption reductions greater than 7% in a Java-based textbook example when the pattern is implemented using reflective dispatch, and reductions of over 10% when experimenting with an open source Java project, JavaParser. The complete removal of the pattern yields more complex results, with little impact in the textbook example but reductions of over 7% in the JavaParser study. To explore the generalisability of our findings, we subsequently apply the same transformations to the C++ based CppParser. Total pattern removal here sees energy consumption reductions of over 66% while the reflective dispatch approach increases energy consumption by up to 2012%. Our results highlight the energy savings that can be achieved when the Visitor pattern is removed both in Java and C++ implementations, and also show that some language specific features can allow for further energy savings when the implementation of the pattern is varied.
PARC++ is a system that supports object-oriented parallel programming in C++. PARC++ provides the user with a set of predefined C++ classes that can easily be used for the construction of parallel C++ programs. With t...
详细信息
PARC++ is a system that supports object-oriented parallel programming in C++. PARC++ provides the user with a set of predefined C++ classes that can easily be used for the construction of parallel C++ programs. With the help of PARC++ objects, the programmer is able to create and start new processes (threads), to synchronize their activities (Blocklock, Monitor) and to manage communication via message passing (Mailbox). PARC++ is written in C++ and currently runs on top of the EMEX operating system on a FORCE machine with 11 processing elements and an EDS (European Declarative System) with 28 processing elements. The paper also contains information about the run-time system model, the implementation and some performance measurements.
FEMSTER is a modular finite element class library for solving three-dimensional problems arising in electromagnetism. The library was designed using a modern geometrical approach based on differential forms (or p-form...
详细信息
FEMSTER is a modular finite element class library for solving three-dimensional problems arising in electromagnetism. The library was designed using a modern geometrical approach based on differential forms (or p-forms) and can be used for high-order spatial discretizations of well-known H(div)- and H(curl)-conforming finite element methods. The software consists of a set of abstract interfaces and concrete classes, providing a framework in which the user is able to add new schemes by reusing the existing classes or by incorporating new user-defined data types.
Monte Carlo simulation is a very powerful tool in understanding performances of positron tomographs as well as in assessing image reconstruction algorithms and their implementations. We present an object-oriented Mont...
详细信息
Monte Carlo simulation is a very powerful tool in understanding performances of positron tomographs as well as in assessing image reconstruction algorithms and their implementations. We present an object-oriented Monte Carlo simulator developed for 3D positron tomography. Results from phantom simulation studies including absorption and scattering of the photons in the field-of-view are presented. Scatter fractions determined from these studies are in good agreement with measured scatter fractions published in the literature. Limitations and future prospects are discussed. (C) 1999 Elsevier Science Ireland Ltd. All rights reserved.
A precise static type analysis is important to make available dynamic aspects of object-oriented programs (OOPs) approximately known at compile-time. Many techniques have been proposed for static type analysis dependi...
详细信息
A precise static type analysis is important to make available dynamic aspects of object-oriented programs (OOPs) approximately known at compile-time. Many techniques have been proposed for static type analysis depending upon the tradeoff of cost and precision;the techniques may generate spurious possible types for a particular dynamic dispatch which makes the static type analysis imprecise. In this paper, we propose a symbolic execution based type analysis technique that analyzes the dynamic type inter-procedurally by keeping the flow of the program in consideration. We analyze test cases with different class hierarchies. The proposed technique was capable to resolve the target method for most of the dynamic dispatches at reduced computational cost.
Despite the large number of applications with micropolar models, the aspects of their implementation have been rarely addressed in the literature. In the present paper, a strategy for the computational modeling of mic...
详细信息
Despite the large number of applications with micropolar models, the aspects of their implementation have been rarely addressed in the literature. In the present paper, a strategy for the computational modeling of micropolar media with elasto-plasticity and elastic degradation is investigated. The proposed strategy is based on the object-oriented Paradigm (OOP) and on the use of tensor objects. The presence of tensor objects inside the code allows to obtain a constitutive models framework that, with respect to existent implementations, is independent on both the adopted analysis model and numerical method. The OOP, with its properties of abstraction, inheritance, and polymorphism, leads to a framework highly modular and easy to expand. The theoretical basis is a compact tensorial representation for the micropolar equations that makes them formally identical to the ones of the classic continuum theory. This compatibility has been here extended to their computational expressions, making possible to use the same code structure for both the continuum models, taking advantage of existing implementations of classic constitutive models.
Inheritance together with virtual functions in C++ provides programmers much polymorphism, an important facility of object-oriented design and programming. However, they can hardly be applied to enrich a family of cla...
详细信息
Inheritance together with virtual functions in C++ provides programmers much polymorphism, an important facility of object-oriented design and programming. However, they can hardly be applied to enrich a family of classes(including the base classes and their derived classes) with some common features. Multiple inheritance and virtual base classes are usually hired to solve such a problem, or templates can also be employed for the same purpose. Unfortunately, these approaches are unnatural and costly. Moreover, virtual base classes deflect from the concept of dynamic binding behind virtual functions and therefore complicate the incomplete virtuality in C++. In this paper, we demonstrate that truly virtual base classes can be utilized to solve the problem effectively and efficiently, and can be used to express explicitly what virtual base classes do implicitly in a more flexible and lucid way. In addition, they along with virtual data members can provide further polymorphism and a type-safe and efficient alternative to constrained genericity and multiple inheritance in some cases, and hence facilitate the design and implementation of extensible and portable software, especially libraries of classes.
暂无评论