Programming Language Research Group

Programming language design, semantics, algorithms, and implementation with an emphasis on convenient use of parallelism using multicores and GPUs.

Project Details

Programming Language Research Group

Programming Language Research Group

Programming language design, semantics, algorithms, and implementation with an emphasis on convenient use of parallelism using multicores and GPUs.

Project Overview

Programming language design, semantics, algorithms, and implementation with an emphasis on convenient use of parallelism using multicores and GPUs.

    Among our current projects are:
    1. Machine learning algorithms suitable for fast implementation on GPUs (in collaboration with the Oracle Labs IRML group).
    2. Consulting with the Java product group on development of Java and the JVM, including compilation of collection operations and stream expressions for parallel target machines and/or GPUs, as well as explorations of value types and their interaction with generic types.
    3. Fast parallel algorithms for pseudorandom number generators (this produced the SplittableRandom class for Java JDK8).

Principal Investigator

Guy Steele

Software Architect

Guy Steele is a Software Architect for Oracle Labs and Principal Investigator of the Programming Language Research Group. His research interests include programming language design and implementation, algorithms, compiler design, distributed systems, functional programming, object-oriented programming, automatic storage management (including garbage collection), floating-point arithmetic, interval arithmetic, hardware/software codesign, parallel algorithms, parallel computer architectures, machine learning, and pseudorandom number generation.

He received his A.B. in applied mathematics from Harvard College (1975), and his S.M. and Ph.D. in computer science and artificial intelligence from MIT (1977 and 1980). Prior to becoming a member of Oracle Labs, he was an assistant professor of computer science at Carnegie-Mellon University; a member of technical staff at Tartan Laboratories in Pittsburgh, Pennsylvania; a senior scientist at Thinking Machines Corporation in Cambridge, Massachusetts; and a Distinguished Engineer and then a Sun Fellow at Sun Microsystems Laboratories.

He is author or co-author of five books: Common Lisp: The Language (Digital Press, first ed. 1984, second ed. 1990); C: A Reference Manual (Prentice-Hall, first ed. 1984, fifth ed. 2002); The Hacker's Dictionary (Harper&Row, 1983), which has been revised as The New Hacker's Dictionary, edited by Eric Raymond with introduction and illustrations by Guy Steele (MIT Press, first ed. 1992, third ed. 1996); The High Performance Fortran Handbook (MIT Press, 1994); and The Java Language Specification (Addison-Wesley, first ed. 1996, second ed. 2000, third ed. 2005; Java SE 7 ed. 2013; Java SE 8 ed. 2014). All are still in print. He has been praised for an especially clear and thorough writing style in explaining the details of programming languages.

He has published more than two dozen papers on the subject of the Lisp language and Lisp implementation, including a series with Gerald Jay Sussman that defined the Scheme dialect of Lisp. One of these, "Multiprocessing Compactifying Garbage Collection," won first place in the ACM 1975 George E. Forsythe Student Paper Competition. Other papers published in CACM are "Design of a LISP-Based Microprocessor" with Gerald Jay Sussman (November 1980) and "Data Parallel Algorithms" with W. Daniel Hillis (December 1986); the latter has been cited over 1100 times. He has also published papers on many other subjects, including compilers, parallel processing, constraint languages, and pseudorandom number generation. One song he composed has been published in CACM ("The Telnet Song", April 1984).

He has been given the ACM Grace Murray Hopper Award (1988), the ACM SIGPLAN Programming Languages Achievement Award (1996), the Dr. Dobb’s Journal Excellence in Programming Award (2005), and the Harry H. Goode Memorial Award (2007). He led the team that received a 1990 Gordon Bell Prize honorable mention for achieving the fastest speed to that date for a production application: 14.182 Gigaflops. He is a AAAI Fellow (1990), ACM Fellow (1994), Member of the National Academy of Engineering of the United States of America (2001). Fellow of the American Academy of Arts and Sciences (2002), and IEEE Fellow (2011).

He has served on accredited standards committees X3J11 (C language) and X3J3 (Fortran), and served as chairman of X3J13 (Common Lisp). He was also a member of the IEEE committee that produced the IEEE Standard for the Scheme Programming Language, IEEE Std 1178-1990. He was a representative to the High Performance Fortran Forum, which produced the High Performance Fortran specification in May, 1993. At Thinking Machines Corporation he co-developed the languages Connection Machine Lisp, C*, and Connection Machine Fortran. At Sun Microsystems (and now at Oracle) he has advised the evolution of the Java programming language; he also led the design of Fortress, an object-oriented mathematical language intended to support high-performance computing. He designed the original EMACS command set and was the first person to port TeX.

He has served on Ph.D. thesis committees for twelve students. He has served as program chair for the 1984 ACM Lisp Conference and for the 15th ACM POPL conference (1988) and 23rd ACM POPL conference (1996); he has also served on program committees for more than 30 other conferences. He served a five-year term on the ACM Turing Award committee, chairing it in 1990. He served a five-year term on the ACM Grace Murray Hopper Award committee, chairing it in 1992.

He has had chess problems published in Chess Life and Review and is a Life Member of the United States Chess Federation. His sonnets and other formal verse have appeared in The Lyric, Iambs and Trochees, and Möbius: The Poetry Magazine. He has sung in the bass section of the MIT Choral Society (John Oliver, conductor) and the Masterworks Chorale (Allen Lannom, conductor) as well as in choruses with the Pittsburgh Symphony Orchestra at Great Woods (Michael Tilson Thomas, conductor) and with the Boston Concert Opera (David Stockton, conductor). He has played the role of Lun Tha in "The King and I" and the title role in "Li'l Abner". He is a member of Tech Squares, the Plus-level Modern Western Square Dance club at MIT, and a square-dance caller (currently Mainstream through C3A). At ACM SPLASH 2011 he gave a presentation and demonstration on the structure of square-dance singing calls.

At Oracle Labs he is responsible for research in language design and implementation strategies, and architectural and software support for programming languages.