scholarly journals Formula Translation in Blitz++, NumPy and Modern Fortran: A Case Study of the Language Choice Tradeoffs

2014 ◽  
Vol 22 (3) ◽  
pp. 201-222
Author(s):  
Sylwester Arabas ◽  
Dorota Jarecka ◽  
Anna Jaruga ◽  
Maciej Fijałkowski

Three object-oriented implementations of a prototype solver of the advection equation are introduced. The presented programs are based on Blitz++ (C++), NumPy (Python) and Fortran's built-in array containers. The solvers constitute implementations of the Multidimensional Positive-Definite Advective Transport Algorithm (MPDATA). The introduced codes serve as examples for how the application of object-oriented programming (OOP) techniques and new language constructs from C++11 and Fortran 2008 allow to reproduce the mathematical notation used in the literature within the program code. A discussion on the tradeoffs of the programming language choice is presented. The main angles of comparison are code brevity and syntax clarity (and hence maintainability and auditability) as well as performance. All performance tests are carried out using free and open-source compilers. In the case of Python, a significant performance gain is observed when switching from the standard interpreter (CPython) to the PyPy implementation of Python. Entire source code of all three implementations is embedded in the text and is licensed under the terms of the GNU GPL license.

2012 ◽  
Vol 10 (3) ◽  
pp. 1-16 ◽  
Author(s):  
Lee Chao

The objective of this article is to facilitate mobile teaching and learning by providing an alternative course material deployment method. This article suggests a course material deployment platform for small universities or individual instructors. Different from traditional course material deployment methods, the method discussed deploys course materials by using services provided by Android Market. After comparing the traditional course material deployment and the alternative deployment, the author presents strategies to take advantage of Android Market in delivering course materials to mobile devices. Through a case study, this article illustrates the application of these strategies in deploying a class menu for an object-oriented programming course in the computer science curriculum.


Author(s):  
Elmira Rajinia ◽  
Simon Li

When minor modifications need to be made in an object-oriented computer program, they often incur further more changes due to the presence of dependency in the codes and the program structure. Yet, to accommodate the required change, there can also be more than one option to carry out the initial modifications. To select the modification option in this context, this paper proposes a systematic approach to estimate the scope of change propagation of an object-oriented program given some initial modifications. The strategy is to first capture the dependency relationships of the entities pertaining to an object-oriented program via the matrix representation. Based on this matrix-based model, the priority number method is proposed and applied to estimate the scope of change propagation by assuming some initial modifications. The core of this method is to estimate the chance of affecting other program entities due to some modified entities. A case study is conducted throughout the paper to illustrate and justify the proposed method.


Author(s):  
Dharmveer Kumar Yadav ◽  
Sandip Dutta

egression testing is time consuming and expensive activity in software testing. In Regression testing when any changes made to already tested program it should not affect to other part of program. When some part of code is modified then it is necessary to validate the modified code. Throughout regression testing test case from test suite will be re-executed and re-execution of all the test case will be very expensive. We present fault based prioritization using fuzzy logic approach for object oriented software. We developed fuzzy expert model helps to takes better decision than other expert system for regression testing. Proposed work focus on concept of fault detection rate, execution time and coverage to select the test cases for prioritization purpose.We have taken case study and evaluated our work which shows proposed new framework gives better result than other approach. We present a novel approach for prioritization of test cases for object oriented programming using fuzzy logic technique during regression testing. We developed the proposed methodology, we apply fuzzy logic method for effective prioritization of test case. We have used case study of various programs, and the results are promising compared to other approach.


2000 ◽  
Vol 8 (2) ◽  
pp. 59-71
Author(s):  
David Maley ◽  
Ivor Spence

Config is a software component of the Graphical R-Matrix Atomic Collision Environment. Its development is documented as a case study combining several software engineering techniques: formal specification, generic programming, object-oriented programming, and design by contract. It is specified in VDM++; and implemented in C++, a language which is becoming more than a curiosity amongst the scientific programming community. C++supports object orientation, a powerful architectural paradigm in designing the structure of software systems, and genericity, an orthogonal dimension to the inheritance hierarchies facilitated by object oriented languages. Support in C++ for design by contract can be added in library form. The combination of techniques make a substantial contribution to the overall software quality.


2021 ◽  
Vol 30 (4) ◽  
pp. 1-46
Author(s):  
Jingbo Lu ◽  
Dongjie He ◽  
Jingling Xue

Object sensitivity is widely used as a context abstraction for computing the points-to information context-sensitively for object-oriented programming languages such as Java. Due to the combinatorial explosion of contexts in large object-oriented programs, k -object-sensitive pointer analysis (under k -limiting), denoted k -obj , is often inefficient even when it is scalable for small values of k , where k ⩽ 2 holds typically. A recent popular approach for accelerating k -obj trades precision for efficiency by instructing k -obj to analyze only some methods in a program context-sensitively, determined heuristically by a pre-analysis. In this article, we investigate how to develop a fundamentally different approach, Eagle , for designing a pre-analysis that can make k -obj run significantly faster while maintaining its precision. The novelty of Eagle is to enable k -obj to analyze a method with partial context sensitivity (i.e., context-sensitively for only some of its selected variables/allocation sites) by solving a context-free-language (CFL) reachability problem based on a new CFL-reachability formulation of k -obj . By regularizing one CFL for specifying field accesses and using another CFL for specifying method calls, we have formulated Eagle as a fully context-sensitive taint analysis (without k -limiting) that is both effective (by selecting the variables/allocation sites to be analyzed by k -obj context-insensitively so as to reduce the number of context-sensitive facts inferred by k -obj in the program) and efficient (by running linearly in terms of the number of pointer assignment edges in the program). As Eagle represents the first precision-preserving pre-analysis, our evaluation focuses on demonstrating its significant performance benefits in accelerating k -obj for a set of popular Java benchmarks and applications, with call graph construction, may-fail-casting, and polymorphic call detection as three important client analyses.


Sign in / Sign up

Export Citation Format

Share Document