|
C++ Compilers and ISO ConformanceBrian A. Malloy, James. F. Power and Tanton H. Gibbs, Dr. Dobb's Journal,
Vol. 28,
No. 11,
November,
2003, pp. 54-60.
ISSN: 1044-789X.
(c) Copyright 2003, CMP Media, LLC.
In this article we revisit the C++ conformance study we
presented in "Testing C++ Compilers for ISO Language Conformance"
(DDJ, June 2002). In doing so, we provide some measure of
conformance to the ISO Standard for eight C++ compilers: Borland
6.0, Comeau 4.3.2, EDG 3.2, gcc 3.3, Intel 7.1, PGCC 4.1-2, Visual
C++ 7.1 and Watcom 1.0.
|
|
Toward a definition of run-time object-oriented metricsAine Mitchell and James F. Power, 7th ECOOP Workshop on Quantitative Approaches in Object-Oriented Software Engineering, Darmstadt, Germany,
July 21-25,
2003.
This position paper outlines a programme of research based on the quantification of run-time elements of Java programs. In particular, we adapt two common objectoriented metrics, coupling and cohesion, so that they can be applied at run-time. We demonstrate some preliminary results of our analysis on programs from the SPEC JVM98 benchmark suite.
|
|
gccXfront: Exploiting gcc as a Front End for Program Comprehension Tools via XML/XSLT Mark Hennessy, Brian Malloy and James Power, 11th IEEE International Workshop on Program Comprehension, (Tool Demo), Portland, Oregon, USA,
May 9-11,
2003, pp. 298-299.
ISBN: 0-7695-1883-4.
(c) Copyright 2003, IEEE.
Parsing programming languages is an essential component of
the front end of most program comprehension tools. Languages such as
C++ can be difficult to parse and so it can prove useful to re-use
existing front ends such as those from the GNU compiler collection,
gcc. We have modified gcc to provide syntactic tags in XML format
around the source code which can greatly enhance our comprehension
of the program structure. Further, by using XML transformation
stylesheets, the XML outputted by our modified gcc can be translated
into a more readable format. Our tool, gccXfront leverages the power
and portability of the gcc suite, since any C, C++, Objective C or
Java program can be processed using gcc. Our tool can thus act as a
bridge between gcc and other program comprehension tools that accept
XML formatted input.
|
|
Platform independent dynamic Java virtual machine analysis: the Java Grande Forum benchmark suiteDavid Gregg, James Power, John Waldron, Concurrency and Computation: Practice and Experience,
Vol. 15,
No. 3-5,
March,
2003, pp. 459-484.
ISSN: 1532-0626.
(c) Copyright 2003, John Wiley & Sons, Ltd.
In this paper we present a platform independent analysis of the
dynamic profiles of Java programs when executing on the Java Virtual
Machine. The Java programs selected are taken from the Java Grande
Forum benchmark suite and five different Java-to-bytecode compilers
are analysed. The results presented describe the dynamic instruction
usage frequencies, as well as the sizes of the local variable,
parameter and operand stacks during execution on the JVM.These
results, presenting a picture of the actual (rather than presumed)
behaviour of the JVM, have implications both for the coverage aspects
of the Java Grande benchmark suites, for the performance of the
Java-to-bytecode compilers and for the design of the JVM.
|
|
Decorating tokens to facilitate recognition of ambiguous language constructsBrian A. Malloy, Tanton H. Gibbs, James F. Power, Software: Practice and Experience,
Vol. 33,
No. 1,
January,
2003, pp. 19-39.
ISSN: 0038-0644.
(c) Copyright 2003, John Wiley & Sons, Ltd.
Software tools are fundamental to the comprehension, analysis, testing
and debugging of application systems. A necessary first step in the
development of many tools is the construction of a parser front-end
that can recognize the implementation language of the system under
development. In this paper, we describe our use of token decoration to
facilitate recognition of ambiguous language constructs. We apply our
approach to the C++ language since its grammar is replete with
ambiguous derivations such as the declaration/expression and
template-declaration/expression ambiguity. We describe our
implementation of a parser front-end for C++, keystone, and we
describe our results in decorating tokens for our test suite including
the examples from Clause Three of the C++ standard. We are currently
exploiting the keystone front-end to develop a taxonomy for
implementation-based class testing and to reverse-engineer Unified
Modeling Language (UML) class diagrams.
|