Computer Society and GBC/ACM
MIT Room 32-G449 (Kiva)
It’s Time for a New Old Language
Guy L. Steele Jr., Oracle Labs
The most popular programming language in computer science has no compiler, interpreter, or complete specification. It is remarkably concise. It grew over decades; today, dozens of variations are in use. Its complexity has reached the point where it needs to be re-explained every time it is used, but too often it is not; instead, each variant is more or less taken for granted. This has led to ambiguities and inconsistencies. Much effort has been spent in hand-translating, in both directions, between this language and other languages that do have compilers, primarily for the purpose of implementing yet other languages. The language could well describe parallel computation, but this fact has gone unexploited. In this talk we will summarize the history of the language, highlight variations and problems that have arisen, and propose specific solutions. It is high time that this language be taken seriously, so that all the best tools and techniques of our trade may be applied to it also.
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, 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.
At Oracle Labs he is responsible for research in language design and implementation strategies, and architectural and software support for programming languages.
This joint meeting of the Boston Chapter of the IEEE Computer Society and GBC/ACM will be held in MIT Room 32-G449 (the Kiva conference room on the 4th floor of the Stata Center, buildng 32 on MIT maps) . You can see it on this map of the MIT campus.
Up-to-date information about this and other talks is available online at http://ewh.ieee.org/r1/boston/computer/. You can sign up to receive updated status information about this talk and informational emails about future talks at http://mailman.mit.edu/mailman/listinfo/ieee-cs, our self-administered mailing list.