James Cordy

Last updated
James Cordy
Cordy2008.jpg
Born
James Reginald Cordy

(1950-01-02) January 2, 1950 (age 74)
CitizenshipCanada
Alma mater Victoria College
University of Toronto
Known for Turing, TXL, S/SL, NICAD clone detector
Awards ACM Distinguished Scientist (2008)
IBM CAS Faculty Fellow of the Year (2008, 2013)
CS-Can/Info-Can Lifetime Achievement Award (2019)
Scientific career
FieldsComputer Science
Institutions University of Toronto
Queen's University
Doctoral advisor Richard C. Holt

James Reginald Cordy (born January 2, 1950) is a Canadian computer scientist and educator who is Professor Emeritus in the School of Computing at Queen's University. As a researcher he is most recently active in the fields of source code analysis and manipulation, software reverse and re-engineering, and pattern analysis and machine intelligence. He has a long record of previous work in programming languages, compiler technology, and software architecture.

He is best known for his work on the TXL source transformation language, [1] a parser-based framework and functional programming language designed to support software analysis and transformation tasks originally developed with M.Sc. student Charles Halpern-Hamu in 1985 as a tool for experimenting with programming language design. [2] His recent work on the NICAD clone detector [3] with Ph.D. student Chanchal Roy, the Recognition Strategy Language [4] with Ph.D. student Richard Zanibbi and Dorothea Blostein, the Cerno [5] lightweight natural language understanding system with John Mylopoulos and others at the University of Trento, and the SIMONE model clone detector with Manar Alalfi, Thomas R. Dean, Matthew Stephan and Andrew Stevenson [6] is based on TXL.

The 1995 paper A Syntactic Theory of Software Architecture [7] with Ph.D. student Thomas R. Dean has been widely cited as a seminal work in the area, and led to his work with Thomas R. Dean, Kevin A. Schneider and Andrew J. Malton on legacy systems analysis. [8]

Work in programming languages included the design of Concurrent Euclid [9] (1980) and Turing [10] [11] (1983), with R.C. Holt, and the implementation of the Euclid [12] (1978) and SP/k [13] (1974) languages with R.C. Holt, D.B. Wortman, D.T. Barnard and others. As part of these projects he developed the S/SL compiler technology [14] with R.C. Holt and D.B. Wortman based on his M.Sc. thesis work [15] and the orthogonal code generation method based on his Ph.D. thesis work. [16]

He has co-authored or co-edited the books The Turing Programming Language: Design and Definition [17] (1988), Introduction to Compiler Construction Using S/SL [18] (1986), The Smart Internet [19] (2010), and The Personal Web [20] (2013).

From 2002 to 2007 he was the Director of the Queen's School of Computing. In 2008 he was elected a Distinguished Scientist of the Association for Computing Machinery. [21] He is a prolific academic supervisor and in 2008 was recognized with the Queen's University Award of Excellence in Graduate Supervision. [22] In 2016 he won the Queen's University Prize for Excellence in Research. [23] In 2019 he was recognized with the CS-Can/Info-Can Lifetime Achievement Award. [24]

Related Research Articles

<span class="mw-page-title-main">Niklaus Wirth</span> Swiss computer scientist (1934–2024)

Niklaus Emil Wirth was a Swiss computer scientist. He designed several programming languages, including Pascal, and pioneered several classic topics in software engineering. In 1984, he won the Turing Award, generally recognized as the highest distinction in computer science, "for developing a sequence of innovative computer languages".

<span class="mw-page-title-main">Turing (programming language)</span> High-level computer programming language

Turing is a high-level, general-purpose programming language developed in 1982 by Ric Holt and James Cordy, at University of Toronto in Ontario, Canada. It was designed in order to help students taking their first computer science course learn how to code. Turing is a descendant of Pascal, Euclid, and SP/k that features a clean syntax and precise machine-independent semantics.

<span class="mw-page-title-main">Alfred Aho</span> Canadian computer scientist

Alfred Vaino Aho is a Canadian computer scientist best known for his work on programming languages, compilers, and related algorithms, and his textbooks on the art and science of computer programming.

The Syntax/Semantic Language (S/SL) is an executable high level specification language for recursive descent parsers, semantic analyzers and code generators developed by James Cordy, Ric Holt and David Wortman at the University of Toronto in 1980.

<span class="mw-page-title-main">Jack Dongarra</span> American computer scientist (born 1950)

Jack Joseph Dongarra is an American computer scientist and mathematician. He is the American University Distinguished Professor of Computer Science in the Electrical Engineering and Computer Science Department at the University of Tennessee. He holds the position of a Distinguished Research Staff member in the Computer Science and Mathematics Division at Oak Ridge National Laboratory, Turing Fellowship in the School of Mathematics at the University of Manchester, and is an adjunct professor and teacher in the Computer Science Department at Rice University. He served as a faculty fellow at the Texas A&M University Institute for Advanced Study (2014–2018). Dongarra is the founding director of the Innovative Computing Laboratory at the University of Tennessee. He was the recipient of the Turing Award in 2021.

SP/k is a programming language developed circa 1974 by R.C. Holt, D.B. Wortman, D.T. Barnard and J.R. Cordy as a subset of the PL/I programming language designed for teaching programming. It was used for about a decade at over 40 universities, schools, and research laboratories in Canada and the United States.

Euclid is an imperative programming language for writing verifiable programs. It was designed in the mid-1970s by Butler Lampson and James G. Mitchell at the Xerox PARC lab in collaboration with Jim Horning at the University of Toronto, Ralph L. London at USC ISI and Gerald J. Popek at UCLA. The implementation was led by Ric Holt at the University of Toronto and James Cordy was the principal programmer for the first implementation of the compiler. It was originally designed for the Motorola 6809 microprocessor. It was considered innovative for the time; the compiler development team had a $2 million budget over 2 years and was commissioned by the Defense Advanced Research Projects Agency of the U.S. Department of Defense and the Canadian Department of National Defence. It was used for a few years at I. P. Sharp Associates, MITRE Corporation, SRI International and various other international institutes for research in systems programming and secure software systems.

<span class="mw-page-title-main">Per Brinch Hansen</span> Danish-American computer scientist

Per Brinch Hansen was a Danish-American computer scientist known for his work in operating systems, concurrent programming and parallel and distributed computing.

<span class="mw-page-title-main">Stuart Feldman</span> American computer scientist

Stuart Feldman is an American computer scientist. He is best known as the creator of the computer software program make. He was also an author of the first Fortran 77 compiler, was part of the original group at Bell Labs that created the Unix operating system, and participated in development of the ALTRAN and EFL programming languages.

Richard Craig Holt was an American-Canadian computer scientist.

<span class="mw-page-title-main">Susan L. Graham</span> American computer scientist

Susan Lois Graham is an American computer scientist. Graham is the Pehong Chen Distinguished Professor Emerita in the Computer Science Division of the Department of Electrical Engineering and Computer Sciences at the University of California, Berkeley.

TXL is a special-purpose programming language originally designed by Charles Halpern-Hamu and James Cordy at the University of Toronto in 1985. The acronym "TXL" originally stood for "Turing eXtender Language" after the language's original purpose, the specification and rapid prototyping of variants and extensions of the Turing programming language, but no longer has any meaningful interpretation.

Concurrent Euclid (ConEuc) is a concurrent descendant of the Euclid programming language designed by James Cordy and Ric Holt, then at the University of Toronto, in 1980. ConEuc was designed for concurrent, high performance, highly reliable system software, such as operating systems, compilers and embedded microprocessor systems. The TUNIS operating system, a Unix variant, was implemented entirely in Concurrent Euclid. ConEuc extends a core subset of Euclid with processes and monitors as well as language constructs needed for systems programming including separate compilation, variables at absolute addresses, type converters, long integers and other features.

<span class="mw-page-title-main">ConQAT</span>

The Continuous Quality Assessment Toolkit (ConQAT) is a configurable software quality analysis engine. ConQAT is based on a pipes and filters architecture that enables flexible complex analysis configurations using a graphical configuration language. This architecture differs from other analysis tools that usually have a fixed data model and hard-wired analysis logics.

<span class="mw-page-title-main">Michael Franz</span> American computer scientist

Michael Franz is an American computer scientist best known for his pioneering work on just-in-time compilation and optimisation and on artificial software diversity. He is a Distinguished Professor of Computer Science in the Donald Bren School of Information and Computer Sciences at the University of California, Irvine (UCI), a Professor of Electrical Engineering and Computer Science in the Henry Samueli School of Engineering at UCI, and Director of UCI's Secure Systems and Software Laboratory.

References

  1. J.R. Cordy, "The TXL Source Transformation Language", Science of Computer Programming 61,3 (August 2006), pp. 190-210
  2. J.R. Cordy, C.D. Halpern and E. Promislow, TXL: A Rapid Prototyping System for Programming Language Dialects, Computer Languages 16,1 (January 1991), pp. 97-107
  3. C.K. Roy and J.R. Cordy, NICAD: Accurate Detection of Near-miss Clones Using Flexible Pretty-printing and Code Normalization, Proc. ICPC 2008, IEEE International Conference on Program Comprehension, Amsterdam, June 2008, pp. 172-181
  4. R. Zanibbi, D. Blostein and J.R. Cordy, "The Recognition Strategy Language", Proc. ICDAR 2005 - IAPR 8th Intl. Conf. on Document Analysis and Recognition, Seoul, Korea, August 2005, pp. 565-569
  5. N. Kiyavitskaya, N. Zeni, J.R. Cordy, L. Mich and J. Mylopoulos, Cerno: Light-Weight Tool Support for Semantic Annotation of Textual Documents, Data & Knowledge Engineering 68,12 (Dec. 2009), pp. 1470-1492
  6. M.H. Alalfi, J.R. Cordy, T.R. Dean, M. Stephan and A. Stevenson, "Models are Code Too: Near-miss Clone Detection for Simulink Models", Proc. ICSM 2012 - IEEE International Conference on Software Maintenance, Riva del Garda, Italy, September 2012, pp. 295-304
  7. T.R. Dean and J.R. Cordy, "A Syntactic Theory of Software Architecture", IEEE Transactions on Software Engineering 21,4 (January 1995), pp. 302-313.
  8. T.R. Dean, J.R. Cordy, K.A. Schneider and A.J. Malton, "Experience Using Design Recovery Techniques to Transform Legacy Systems", Proc. ICSM 2001 - IEEE International Conference on Software Maintenance, Florence, Nov. 2001, pp. 622-631
  9. J.R. Cordy and R.C. Holt, The Concurrent Euclid Report, Technical Reports CSRI-115 and CSRI-133, Computer Systems Research Institute, University of Toronto, July 1980
  10. R.C. Holt and J.R. Cordy, "The Turing Language Report", Technical Report CSRI-153, Computer Systems Research Institute, University of Toronto, December 1983
  11. R.C. Holt and J.R. Cordy, The Turing Programming Language, Communications of the Association for Computing Machinery 31,12 (December 1988), pp. 1410-1423
  12. D.B. Wortman and J.R. Cordy, Early Experiences with Euclid, Proc. ICSE-5, IEEE 5th International Conference on Software Engineering, San Diego, March 1981, pp. 27-32
  13. R.C. Holt, D.B. Wortman, D.T. Barnard and J.R. Cordy, "SP/k: A System for Teaching Computer Programming", Comm. of the Association for Computing Machinery 20,5 (May 1977), pp. 301-309.
  14. R.C. Holt, J.R. Cordy and D.B. Wortman, An Introduction to S/SL: Syntax/Semantic Language, ACM Transactions on Programming Languages and Systems 4,2 (April 1982), pp. 149-178
  15. J.R. Cordy, R.C. Holt and D.B. Wortman, Semantic Charts: A Diagrammatic Approach to Semantic Processing, Proc. ACM 1979 SIGPLAN Symposium on Compiler Construction, ACM SIGPLAN Notices Vol. 14, No. 8, August 1979, pp. 39-49
  16. J.R. Cordy and R.C. Holt, "Code Generation Using an Orthogonal Model", Software-Practice and Experience 20,3 (March 1990), pp. 301-320
  17. R.C. Holt, P.A. Matthews, J.A. Rosselet and J.R. Cordy, The Turing Programming Language: Design and Definition, Prentice-Hall, 1988
  18. J.R. Cordy, Introduction to Compiler Construction Using S/SL : the Syntax/Semantic Language, Queen's University, 1986, (5th edition, August 2006)
  19. M. Chignell, J.R. Cordy, J. Ng and Y. Yesha (eds.), The Smart Internet: Current Research and Future Applications, Lecture Notes in Computer Science 6400, Springer Verlag, 2010
  20. M. Chignell, J.R. Cordy, R.Kealey, J. Ng and Y. Yesha (eds.), The Personal Web: A Research Agenda, Lecture Notes in Computer Science 7855, Springer Verlag, 2013
  21. "ACM Awards". Archived from the original on 2012-04-02. Retrieved 2011-03-31.
  22. "University Wide Awards | Centre for Teaching and Learning". Archived from the original on 2015-10-01.
  23. "Prizes for Excellence in Research | Queen's University".
  24. "James R. Cordy".