This paper presents a new modelling architecture and a formal modelling approach based on concepts derived from object-oriented programming. It also presents the conclusions of a comparative study of the methods used ...
详细信息
This paper presents a new modelling architecture and a formal modelling approach based on concepts derived from object-oriented programming. It also presents the conclusions of a comparative study of the methods used for numerical and formal solutions. The architecture and the approach that are described here have been applied to a complex real system: modelling the road behaviour of vehicles - articulated or not. Copyright (C) 1997 Elsevier Science Ltd.
A computational framework has been developed for step-by-step implementation of global spectral projection methods used for solving boundary-value problems and for subsequent analysis of solutions produced using the n...
详细信息
A computational framework has been developed for step-by-step implementation of global spectral projection methods used for solving boundary-value problems and for subsequent analysis of solutions produced using the numerical techniques of this framework. A set of MATLAB-based functions corresponding to each step in a Galerkin discretization procedure has been developed with emphasis on simplifying the implementation of discretization methods for nonlinear, distributed-parameter system models in up to three-dimensional physical domains. A key feature of this computational approach is that a set of object classes was developed to facilitate implementation of the weighted residual methods (MWR) in an effort to make the connection between the solution procedures and modeling equations as clear as possible. The utility of the computational procedures is demonstrated through applications to two-dimensional reaction-diffusion and fluid flow problems, and a three-dimensional heat transfer model relevant to semiconductor manufacturing. (C) 2002 Elsevier Science Ltd. All rights reserved.
Metaphor is a multi-stage programming language extension to an imperative, object-oriented language in the style of C# or Java. This paper discusses some issues we faced when applying multi-stage language design conce...
详细信息
Metaphor is a multi-stage programming language extension to an imperative, object-oriented language in the style of C# or Java. This paper discusses some issues we faced when applying multi-stage language design concepts to an imperative base language and run-time environment. The issues range from dealing with pervasive references and open code to garbage collection and implementing cross-stage persistence. (c) 2006 Elsevier B.V. All rights reserved.
Although inspection is an effective. mechanism for detecting defects in procedural systems, object-oriented systems have different structural and execution models. This article describes the development and empirical ...
详细信息
Although inspection is an effective. mechanism for detecting defects in procedural systems, object-oriented systems have different structural and execution models. This article describes the development and empirical investigation of three techniques for reading object-oriented code during inspection.
Introduces flexible organizations (FORS), a design environment based on a network representation of a design. Components of the design network; Provision of icon based interface; Use of the system in the mechanical de...
详细信息
Introduces flexible organizations (FORS), a design environment based on a network representation of a design. Components of the design network; Provision of icon based interface; Use of the system in the mechanical design of car window regulators.
Three object-oriented implementations of a prototype solver of the advection equation are introduced. The programs are based on Blitz++ (C++), NumPy (Python) and Fortran's built-in array containers. The solvers co...
详细信息
Three object-oriented implementations of a prototype solver of the advection equation are introduced. The programs are based on Blitz++ (C++), NumPy (Python) and Fortran's built-in array containers. The solvers constitute mentations of the Multidimensional Positive-Definite Advective Transport Algorithm (MPDATA). The introduced codes serve examples for how the application of object-oriented programming (OOP) techniques and new language constructs from C++ and Fortran 2008 allow to reproduce the mathematical notation used in the literature within the program code. A on the tradeoffs of the programming language choice is presented. The main angles of comparison are code brevity and clarity (and hence maintainability and auditability) as well as performance. All performance tests are carried out using free open-source compilers. In the case of Python, a significant performance gain is observed when switching from the standard terpreter (CPython) to the PyPy implementation of Python. Entire source code of all three implementations is embedded in text and is licensed under the terms of the GNU GPL license.
Inheritance provides object-oriented programming with much of its great reusability power. When inheritance is single, its specifications are simple and everybody roughly agrees on them. In contrast, multiple inherita...
详细信息
Inheritance provides object-oriented programming with much of its great reusability power. When inheritance is single, its specifications are simple and everybody roughly agrees on them. In contrast, multiple inheritance yields ambiguities that have prompted long-standing debates, and no two languages agree on its specifications. In this paper, we present a semantics of multiple inheritance based on metamodeling. A metamodel is proposed which distinguishes the "identity" of properties from their "values" or "implementations". It yields a clear separation between syntactic and semantic conflicts. The former can be solved in any language at the expense of a common syntactic construct, namely full name qualification. However, semantic conflicts require a programmer's decision, and the programming language must help the programmer to some extent. This paper surveys the approach based on linearizations, which has been studied in depth, and proposes some extensions. As it turns out that only static typing takes full advantage of the metamodel, the interaction between multiple inheritance and static typing is also considered, especially in the context of virtual types. The solutions proposed by the various languages with multiple inheritance are compared with the metamodel results. Throughout the paper, difficulties encountered under the open-world assumption are stressed. (C) 2010 Elsevier B.V. All rights reserved.
The number of approaches existing to enable a smooth interaction between Java and Prolog programs testifies the growing interest in solutions that combine the strengths of both languages. Most of these approaches prov...
详细信息
The number of approaches existing to enable a smooth interaction between Java and Prolog programs testifies the growing interest in solutions that combine the strengths of both languages. Most of these approaches provide limited support to allow programmers to customise how Prolog artefacts should be reified in the Java world, or how to reason about Java objects on the Prolog side. This is an error-prone task since often a considerable amount of mappings must be developed and organised. Furthermore, appropriate mappings may depend on the particular context in which a conversion is accomplished. Although some libraries alleviate this problem by providing higher-level abstractions to deal with the complexity of custom conversions between artefacts of the two languages, such libraries are difficult to implement and evolve, because of a lack of appropriate underlying building blocks for encapsulating, categorising and applying Java-Prolog conversion routines. We therefore introduce a new library, JPC, serving as a development tool for both programmers willing to categorise context-dependent conversion constructs in their Java-Prolog systems, and for architects implementing frameworks providing higher-level abstractions for better interoperability between these two languages. (C) 2015 Elsevier B.V. All rights reserved.
Understanding source code is an important task in the maintenance of software systems. Legacy systems are not only limited to procedural languages, but are also written in object-oriented languages. In such a context,...
详细信息
Understanding source code is an important task in the maintenance of software systems. Legacy systems are not only limited to procedural languages, but are also written in object-oriented languages. In such a context, understanding classes is a key activity as they are the cornerstone of the object-oriented paradigm and the primary abstraction from which applications are built. Such an understanding is however difficult to obtain because of reasons such as the presence of late binding and inheritance. A first level of class understanding consists of the understanding of its overall structure, the control flow among its methods, and the accesses on its attributes. We propose a novel visualization of classes called class blueprint that is based on a semantically enriched visualization of the internal structure of classes. This visualization allows a software engineer to build a first mental model of a class that he validates via opportunistic code-reading. Furthermore, we have identified visual patterns that represent recurrent situations and as such convey additional information to the viewer. The contributions of this article are the class blueprint, a novel visualization of the internal structure of classes, the identification of visual patterns, and the definition of a vocabulary based on these visual patterns. We have performed several case studies of which one is presented in depth, and validated the usefulness of the approach in a controlled experiment.
Purpose The purpose of this paper is to describe further developments on a novel formulation of the boundary element method (BEM) for inelastic problems using the dual reciprocity method (DRM) but using object-oriente...
详细信息
Purpose The purpose of this paper is to describe further developments on a novel formulation of the boundary element method (BEM) for inelastic problems using the dual reciprocity method (DRM) but using object-oriented programming (OOP). As the BEM formulation generates a domain integral due to the inelastic stresses, the DRM is employed in a modified form using polyharmonic spline approximating functions with polynomial augmentation. These approximating functions produced accurate results in BEM applications for a range of problems tested, and have been shown to converge linearly as the order of the function increases. Design/methodology/approach A programming class named DRMOOP, written in C++ language and based on OOP, was developed in this research. With such programming, general matrix equations can be easily established and applied to different inelastic problems. A vector that accounts for the influence of the inelastic strains on the displacements and boundary forces is obtained. Findings The C++ DRMOOP class has been implemented and tested with the BEM formulation applied to classical elastoplastic problem and the results are reported at the end of the paper. Originality/value An object-oriented technology and the C++ DRMOOP class applied to elastoplastic problems.
暂无评论