Results 1 -
6 of
6
Program Slicing Tool for Effective Software Evolution Using Aspect-Oriented Technique
- In Proc. of IWPSE 2003
, 2003
"... One of the issues in software evolution is debugging. Debugging large and complex software systems evolved requires a lot of effort since it is very difficult to localize and identify faults. Therefore, reducing the effort of debugging process is an important step towards efficient software evolutio ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
One of the issues in software evolution is debugging. Debugging large and complex software systems evolved requires a lot of effort since it is very difficult to localize and identify faults. Therefore, reducing the effort of debugging process is an important step towards efficient software evolution. Program slicing, especially dynamic slicing, has been proposed to efficiently localize faults in a procedural program and an object-oriented program. Although several tools have been developed for Java programs, these are difficult to maintain because of the frequent revision of Java languages. Aspect-Oriented Programming (AOP) is a new technology for the separation of concerns in program development. Using AOP, modularizing crosscutting aspects of a system is possible. One useful application of AOP is for modularizing the collecting program’s dynamic information for program analysis. Since the collection of dynamic information affects the over-all target program, this functionality is a typical crosscutting concern. In this paper, we apply AOP to develop a program debugging tool using program slicing. First, we examine the application of AOP for collecting dynamic information from program execution and for calculating program slices. Next, we develop a program slicing system using AspectJ. Finally, we describe the benefits, usability, and cost effectiveness of a module of dynamic analysis based on AOP. 1.
Detecting Read-Only Methods in Java
- In Proc. of the ACM Workshop on Languages, Compilers, and Runtime Systems for Scalable Computers (LCR 2000
, 2000
"... . One typically defines a read-only method as a method that does not perform any write operations; however, with respect to a multi-threaded program, we augment this interpretation and let a read-only method be one that does not write to a memory location visible to more than one thread. Such a ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
. One typically defines a read-only method as a method that does not perform any write operations; however, with respect to a multi-threaded program, we augment this interpretation and let a read-only method be one that does not write to a memory location visible to more than one thread. Such a method can execute concurrently with other read-only methods. With the relaxation of mutual exclusion in mind, we present a read-write analysis that employs the ideas of shape analysis and escape analysis to identify readonly methods in Java. Approximately 31% of the methods in the JDK 1.2 core libraries meets this definition of read-only---nearly 50% more than those that do not perform any write operations. 1
Run-time fusion of MPI calls in a parallel C++ library
"... CFL is a C++ library for MPI programmers. It uses overloading to distinguish private variables from replicated, shared variables, and automatically introduces MPI communication to keep such replicated data consistent. This paper concerns a simple but surprisingly eective technique which improves per ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
CFL is a C++ library for MPI programmers. It uses overloading to distinguish private variables from replicated, shared variables, and automatically introduces MPI communication to keep such replicated data consistent. This paper concerns a simple but surprisingly eective technique which improves performance substantially: CFL operators are executed lazily in order to expose opportunities for run-time, context-dependent, optimisation such as message aggregation and operator fusion. We evaluate the idea in the context of a large-scale simulation of oceanic plankton ecology. The results demonstrate the software engineering benets that accrue from the CFL abstraction and show that performance close to that of manually optimised code can be achieved automatically in many cases. 1 Introduction In this paper we describe an experimental abstract data type for representing shared variables in SPMDstyle MPI programs. The operators of the abstract data type have a simple and intuitive semanti...
A Software Transactional Memory Library for C++ Master’s Thesis
"... An increasing number of cores (or CPUs) per computer is creating a need for good programming tools for exploiting these cores. Locks are traditionally used but issues with deadlocks and race conditions easily arise and choosing the correct granularity for locking is often not trivial. In addition, t ..."
Abstract
- Add to MetaCart
An increasing number of cores (or CPUs) per computer is creating a need for good programming tools for exploiting these cores. Locks are traditionally used but issues with deadlocks and race conditions easily arise and choosing the correct granularity for locking is often not trivial. In addition, the use of locks does not generally enable the programmer to compose existing correct lock-based program pieces into a new larger correct lock-based piece. An alternative to locks is Software Transactional Memory (STM) which is a concurrency approach that does not use locks as its primary method. Instead STM is an optimistic concurrency control mechanism; using memory transactions similar to transactions used in database systems. Programs built with STM avoid deadlocks and race conditions and enables composition of program pieces from existing pieces. This work explores design criteria for building a STM system for C++ and for building Standard Template Library containers on top of such a system. We emphasize correctness over performance, generic programming and direct reuse of existing algorithms and data types with our implementation. Using an indirection-based approach for our STM implementation enables us to guarantee strong exception safety for all operations on our data structures. We also develop a new
SMILES v.2.3 A Multi-purpose Learning System *
"... In this paper we describe SMILES, a Stunning Multi-purpose Integrated LEarning System. A machine learning system is useful for extracting models from data and hence it can be used for many applications such as data analysis, decision support or data mining. SMILES is a machine learning system that i ..."
Abstract
- Add to MetaCart
In this paper we describe SMILES, a Stunning Multi-purpose Integrated LEarning System. A machine learning system is useful for extracting models from data and hence it can be used for many applications such as data analysis, decision support or data mining. SMILES is a machine learning system that integrates many different features from other machine learning techniques and paradigms and, more importantly, it presents several innovations in almost all of these features. This report contains four major parts: a description about the system architecture, a user’s manual, a more advanced section on how to take the most of the system and, finally, some brief programmer’s guidelines. A complete table of all the

