James
R. Cordy
Software Systems and
Languages
Software
Systems and Languages
Each of these
software systems represents a concrete result of
my past research and development projects in
academia and industry.
J.R. Cordy
and C.K. Roy,
The NICAD Clone Detector (2010),
NICAD
Website
NICAD Version 3.5 (2013).
The NiCad Clone
Detector is a scalable, flexible clone detection
tool designed to implement the NiCad (Automated
Detection of Near-Miss Intentional Clones)
hybrid clone detection method in a convenient,
easy-to-use command-line tool that can easily be
embedded in IDEs and other environments. It
takes as input a source directory or directories
to be checked for clones and a configuration
file specifying the normalization and filtering
to be done, and provides output results in both
XML form for easy analysis and HTML form for
convenient browsing.
NiCad handles a range of
languages, including C, Java, Python, and C#,
and provides a range of normalizations, filters
and abstractions. It is designed to be easily
extensible using a component-based plugin
architecture. It is scalable to very large
systems and has been used to analyze, for
example, all 47 releases of FreeBSD (60 million
lines) as a single system.
J.R. Cordy
et al.,
The TXL Dialect Transformer
(1985),
The TXL Programming Language
(1991),
TXL
Website
The TXL Transformation System
(1995),
TXL Version 10.6 (2013q)
A unique programming
language and software analysis / transformation
system designed and implemented by the author
with the help of several graduate students. TXL
has been commercially distributed by Legasys
Corporation, Kingston, and free for research use
by Queen's University and Prime Time Freeware. A
new XML-based freeware implementation FreeTXL
was released in 2002. Over ten thousand copies
of TXL have been distributed worldwide over the
past twenty years.
TXL is the evolving result
of more than fifteen years of concentrated
research on rule-based structural transformation
as a paradigm for the rapid solution of complex
computing problems. It has been used in industry
by NRC, NASA, Intel, AT&T, Sun
Microsystems,Digital Equipment Corp., IBM,
Honeywell, MathSoft, GeoVision, Hewlett-Packard,
Praxis, Adobe, Motorola, Prime Computer, CAMAX
Manufacturing, General Electric, Canon,
Ericsson, British Telecom, Concurrent Computer
Corp. and many others.
Legasys Corporation
(Kingston) was founded to exploit industrial
applications of TXL. TXL was the primary
technology used to implement LS/2000, the
automated Year 2000 analysis and conversion
system used by the Bank of Nova Scotia, the
Royal Bank of Canada and many other clients at
IBM's Transformation 2000 conversion centre.
Embarcadero Technologies (Boulder, Colorado)
uses TXL in their successful Describe line of
software engineering products.
In academia, TXL supports
research at academic institutions all over the
world, including Queen's, Toronto,
Québec, Montréal, Montréal
Polytechnic, Alberta, York and Waterloo
(Canada), Rutgers, Penn State, Illinois, North
Carolina and Southern Louisiana (U.S.A.), IMAG
(France), Imperial College and Edinburgh (UK),
Aachen, Berlin, Karlsruhe, Munich and Ulm
(Germany), IRST and Pisa (Italy), Delft
(Netherlands), Bern (Switzerland), Warsaw and
Wroclaw (Poland), Patras (Greece), Melbourne and
New South Wales (Australia), Hallym (South
Korea), Natal (South Africa), IIT (India), and
the Catholic University of Rio de Janeiro
(Brazil).
K.A.
Schneider, J.R. Cordy, T.R. Dean, A.J. Malton
et al.,
Legasys LS/2000 Automated Year 2000
Conversion System (1996),
Legasys LS/AMT Automated Software Maintenance
System (1999).
A design recovery
based software analysis and maintenance system
implemented using TXL and several proprietary
software technologies researched and developed
at Legasys Corporation from 1995-2000.
LS/2000 was the automated
Year 2000 analysis and conversion system used by
the Bank of Nova Scotia, the Royal Bank of
Canada and many other clients at IBM's
Transformation 2000 conversion centre to analyze
and automatically reprogram over three billion
lines of Cobol, PL/I and RPG source code to
avoid the millennium bug.
LS/AMT is a comprehensive
and scalable generalization of LS/2000 to
arbitrary software analysis and large scale
change tasks such as language, platform and web
migrations. LS/AMT has already been used to
process over one billion lines of source code in
support of large scale software maintenance
tasks such as airline and bank
mergers.
R.C. Holt
and J.R. Cordy,
The Turing Programming Language
(1983),
Turing
Website
Turing Plus (1985),
Object-Oriented Turing
(1992).
An educational
programming language and computer software
system commercialized and distributed by Holt
Software Associates Ltd., Toronto, 1985-present.
Designed by the authors and implemented under
their supervision.
Turing has been used in
teaching computer science courses at the
University of Toronto, York University, Queen's
University and the University of Waterloo and at
more than 40 other universities and school
boards in Canada, the United States, Europe and
Australia. Turing is still the primary
programming language taught at over 50% of
secondary schools in Ontario and at several
universities.
J.R. Cordy
and T.C.N. Graham,
EPE: the Educational Programming
Environment (1986).
An educational
integrated program development environment and
user interface commissioned by the Ontario
Ministry of Education. Designed and implemented
by the authors. EPE was widely used in
universities and school boards in Canada and
abroad as the "Turing Programming
Environment".
R.C. Holt
and J.R. Cordy,
The Concurrent Euclid Programming
Language (1981).
A programming
language and computer software system designed
for the implementation of concurrent processes
and operating systems. Commercialized and
distributed by Holt Software Associates Ltd.,
Toronto, 1985-89. Designed and implemented by
the authors.
Used for several years in
teaching operating systems courses at a number
of universities and technical schools in Canada
and the U.S. including the University of
Toronto, Queen's, Alberta, Saskatchewan and
Washington, and in industry by a number of
companies.
J.R. Cordy,
R.C. Holt and D.B. Wortman,
S/SL: The Syntax/Semantic Language
(1980).
A general
methodology and software skeleton for the
construction of programming language compilers
and interpreters. Designed and first implemented
by the authors based on my M.Sc. thesis
research.
The S/SL method of
compiler construction has been independently
implemented and used by many companies and
research institutes in many different languages
over the past 15 years. Most recently S/SL has
been used by IBM as the core technology in their
new line of high performance programming
language compilers (1997).
R.C. Holt,
D.B. Wortman, J.R. Cordy, D.R. Crowe and I.H.
Griggs,
The Toronto Euclid Compiler
(1980),
Euclid Version 2 (1984).
The first
implementation of the radically innovative
Euclid programming language commissioned by the
Defense Advanced Research Projects Agency of the
U.S. Department of Defense and the Canadian
Department of National Defence. I served as
chief programmer on the two year, two million
dollar project
Used for some years by
I.P. Sharp Associates, Mitre Corporation, SRI
International and various other international
institutes for research in systems programming
and secure software systems.
R.C. Holt,
D.B. Wortman, D.T. Barnard and J.R. Cordy,
The SP/k Programming Language
(1977).
A PL/I subset
programming language and software system
designed for teaching computer programming.
Designed and implemented by the authors. Used
for teaching computer programming at
approximately 40 universities, school boards and
research laboratories for several
years.
Cordy
Home
Last updated 7 April
2007
|