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