James Power - Papers Published in 2002


This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder.

Recent Advances in Java Technology: Theory, Application, Implementation

James F. Power and John T. Waldron (Eds.),
Computer Science Press, Trinity College Dublin, November, 2002.
ISBN: 0-9544145-0-0.
(c) Copyright 2002, Computer Science Press, Trinity College Dublin.

Since its launch, the Java programming language has quickly established itself as a backbone technology in many areas of computer science and information systems. By leveraging the power, reliability and portability of the Java framework, applications developers have harnessed a means of creating robust and mobile applications. In RECENT ADVANCES IN JAVA TECHNOLOGY we investigate the present day widespread use of Java and Java related technologies to provide a platform for cutting-edge developments in software.

Measuring the impact of object-oriented techniques in Grande applications: a method-level analysis

D. Gregg, J.F. Power, J.T. Waldron,
Joint ACM-ISCOPE Conference on Java Grande (Poster Session),
Seattle, Washington, USA, November 3-5, 2002, pp. 229-229.
ISBN: 1-58113-599-8.
(c) Copyright 2002, ACM.

In this work we seek to provide a foundation for the study of the level of use of object-oriented techniques in Java programs in general, and scientific applications in particular. Specifically, we focus on the use of small methods, and the frequency with which they are called, since this forms the basis for the study of method inlining, an important optimisation technique. We compare the Grande and SPEC benchmark suites, and note a significant difference in the nature and composition of these suites.

Program annotation in XML: a parser-based approach

J.F. Power and B.A. Malloy,
9th IEEE Working Conference on Reverse Engineering,
Richmond, Virginia, USA, October 28 - November 1, 2002, pp. 190-198.
ISBN: 0-7695-1799-4.
(c) Copyright 2002, IEEE.

In this paper we describe a technique that can be used to annotate source code with syntactic tags in XML format. This is achieved by modifying the parser generator bison to emit these tags for an arbitrary grammar. We also discuss an immediate application of this technique, a portable modification of the gcc compiler, that allows for XML output for C, Objective C, C++ and Java programs. While our approach does not have the same semantic richness as other approaches, it does have the advantage of being language independent, and thus re-usable in a number of different domains.

Automated Validation of Class Invariants in C++ Applications

T.H. Gibbs, B.A. Malloy and J.F. Power,
17th IEEE International Conference on Automated Software Engineering,
Edinburgh, UK, September 23-27, 2002, pp. 205-214.
ISBN: 0-7695-1736-6.
(c) Copyright 2002, IEEE.

In this paper, we describe a non-invasive approach for validation of class invariants in C++ applications. Our approach is fully automated so that the user need only supply the class invariants for each class hierarchy to be checked and our validator constructs an InvariantVisitor, a variation of the Visitor Pattern, and an InvariantFacilitator. Instantiations of the InvariantVisitor and InvariantFacilitator classes encapsulate the invariants in C++ statements and facilitate the validation of the invariants. We describe both our approach and our results of validating invariants in keystone, a well tested parser front-end for C++.

Applying Software Engineering Techniques to Parser Design

B. A. Malloy, J. F. Power and J. T. Waldron,
Conference of the South African Institute of Computer Scientists and Information Technologists,
Port Elizabeth, South Africa, September 16-18, 2002, pp. 75-82.
ISBN: 1-58113-596-3.
(c) Copyright 2002, ACM.

In this paper we describe the development of a parser for the C# programming language. We outline the development process used, detail its application to the development of a C# parser and present a number of metrics that describe the parser's evolution. This paper presents and reinforces an argument for the application of software engineering techniques in the area of parser design. The development of a parser for the C# programming language is in itself important to software engineering, since parsers form the basis for tools such as metrics generators, refactoring tools, pretty-printers and reverse engineering tools.

Bi-gram Analysis of Java Bytecode Sequences

D. O'Donoghue, A. Leddy, J.F. Power and J.T. Waldron,
Proceedings of the Second Workshop on Intermediate Representation Engineering for the Java Virtual Machine,
Trinity College, Dublin, Ireland, June 13-14, 2002, pp. 187-192.
ISBN: 0-901519-87-1.
(c) Copyright 2002, ACM.

We report on a project that performed a bigram analysis of dynamic bytecode sequences. The objective was to identify the most commonly used bytecode pairs, and to examine the relative frequency of occurrence of these bytecodes. In all, 12 large Java programs were analysed, taken from the Java Grande and SPEC benchmark suites. Our findings are of relevance to research into instruction set design and implementation, as well as JVM optimisation.

Testing C++ Compilers for ISO Language Conformance

Brian A. Malloy, Scott A. Linde, Edward B. Duffy and James F. Power,
Dr. Dobb's Journal,
No. 337, June, 2002, pp. 71-78.
ISSN: 1044-789X.
(c) Copyright 2002, CMP Media, LLC.

In this paper, we describe our construction of a test harness to measure conformance of some popular C++ compilers and to measure the progress of the gcc C++ compiler as it moves toward ISO conformance. In an attempt to apply the same standard to all of the vendors, we use the same test cases and the same testing framework for all executions, even though some of the compilers are platform dependent and there is no common platform for all compilers. We found that the Python language provided the functionality that we needed with its scripting facility, its platform independence and its object orientation to facilitate code reuse. Python includes a testing framework as a module of the language and we have extended the framework to measure C++ ISO conformance.

Reveal: A Tool to Reverse Engineer Class Diagrams

Sarah Matzko, Peter J. Clarke, Tanton H. Gibbs, Brian A. Malloy, James F. Power and Rosemary Monahan,
Fortieth International Conference on Technology of Object-Oriented Languages and Systems,
Sydney, Australia, February 18-21, 2002, pp. 13-21.
ISBN: 0-909-92588-7.
(c) Copyright 2002, ACM.

Many systems are constructed without the use of modeling and visualization artifacts, due to constraints imposed by deadlines or a shortage of manpower. Nevertheless, such systems might profit from the visualization provided by diagrams to facilitate maintenance of the constructed system. In this paper, we present a tool, Reveal, to reverse engineer a class diagram from the C++ source code representation of the software. In Reveal, we remain faithful to the UML standard definition of a class diagram wherever possible. However, to accommodate the vagaries of the C++ language, we offer some extensions to the standard notation to include representations for namespaces, stand-alone functions and friend functions. We compare our representation to three other tools that reverse-engineer class diagrams, for both compliance to the UML standard and for their ability to faithfully represent the software system under study.

Relating Static and Dynamic Measurements for the Java Virtual Machine Instruction Set

T. Dowling, J. Power and J. Waldron ,
Recent Advances in Simulation, Computational Methods and Soft Computing,
N.E. Mastorakis Eds., 2002, pp. 106-111.
ISBN: 960-8052-50-5.

This is a book-length version of our MMACTEE '01 paper.

Benchmarking the Java Virtual Architecture - The SPEC JVM98 Benchmark Suite

D. Gregg, J. Power and J. Waldron,
Java Microarchitectures, Chapter 1,
N. Vijaykrishnan and M. Wolczko Eds., 2002, pp. 1-18.
ISBN: 1-4020-7034-9.
(c) Copyright 2002, Kluwer.

In this chapter we present a study of the SPEC JVM98 benchmark suite at a dynamic platform-independent level. The results presented describe the influence of class library code, the relative importance of various methods in the suite, as well as the sizes of the local variable, parameter and operand stacks. We also examine the dynamic bytecode instruction usage frequencies, and discuss their relevance. The influence of the choice of Java source to bytecode compiler is shown to be relatively insignificant at present.


Contact: James Power
Last revised: 9 Jan 2006