William Clinger (computer scientist)

Last updated
Professor

William D. Clinger
Citizenship United States
EducationPhD, MIT
Known for
Scientific career
Fields Computer science
Institutions Northeastern University
Doctoral advisor Carl Hewitt

William D. Clinger is an associate professor in the Khoury College of Computer Sciences at Northeastern University. [1] He is known for his work on higher-order and functional programming languages, and for extensive contributions in helping create and implement international technical standards for the programming language Scheme via the Institute of Electrical and Electronics Engineers (IEEE) and American National Standards Institute (ANSI). Clinger was an editor of the second through fifth Revised Reports on Scheme (R2RS – R5RS), [2] and an invited speaker on Scheme at the Lisp50 conference celebrating the 50th birthday of the language Lisp. [3] He has been on the faculty at Northeastern University since 1994. [4]

Contents

Research

Clinger obtained his PhD from the Massachusetts Institute of Technology (MIT) under the supervision of Carl Hewitt. His doctoral research revolved around defining a denotational semantics for the actor model of concurrent computing, [5] which is the same model of computing that originally motivated development of Scheme. [6]

In addition to editing the R2RS – R5RS Scheme standards, Clinger's contributions to Scheme have included the development of compilers for two implementations of the language: MacScheme, [7] and Larceny. [8] He also invented efficient algorithms for hygienic macro expansion, accurate decimal-to-binary conversions, and bounded-latency generational garbage collection. [3]

Related Research Articles

In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that map values to other values, rather than a sequence of imperative statements which update the running state of the program.

<span class="mw-page-title-main">Lisp (programming language)</span> Programming language family

Lisp is a family of programming languages with a long history and a distinctive, fully parenthesized prefix notation. Originally specified in 1960, Lisp is the second-oldest high-level programming language still in common use, after Fortran. Lisp has changed since its early days, and many dialects have existed over its history. Today, the best-known general-purpose Lisp dialects are Common Lisp, Scheme, Racket, and Clojure.

<span class="mw-page-title-main">Programming language</span> Language for communicating instructions to a machine

A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.

<span class="mw-page-title-main">Scheme (programming language)</span> Dialect of Lisp

Scheme is a dialect of the Lisp family of programming languages. Scheme was created during the 1970s at the MIT Computer Science and Artificial Intelligence Laboratory and released by its developers, Guy L. Steele and Gerald Jay Sussman, via a series of memos now known as the Lambda Papers. It was the first dialect of Lisp to choose lexical scope and the first to require implementations to perform tail-call optimization, giving stronger support for functional programming and associated techniques such as recursive algorithms. It was also one of the first programming languages to support first-class continuations. It had a significant influence on the effort that led to the development of Common Lisp.

In computer science, denotational semantics is an approach of formalizing the meanings of programming languages by constructing mathematical objects that describe the meanings of expressions from the languages. Other approaches providing formal semantics of programming languages include axiomatic semantics and operational semantics.

<span class="mw-page-title-main">Guy L. Steele Jr.</span> American computer scientist (born 1954)

Guy Lewis Steele Jr. is an American computer scientist who has played an important role in designing and documenting several computer programming languages and technical standards.

The actor model in computer science is a mathematical model of concurrent computation that treats an actor as the basic building block of concurrent computation. In response to a message it receives, an actor can: make local decisions, create more actors, send more messages, and determine how to respond to the next message received. Actors may modify their own private state, but can only affect each other indirectly through messaging.

In computer science, unbounded nondeterminism or unbounded indeterminacy is a property of concurrency by which the amount of delay in servicing a request can become unbounded as a result of arbitration of contention for shared resources while still guaranteeing that the request will eventually be serviced. Unbounded nondeterminism became an important issue in the development of the denotational semantics of concurrency, and later became part of research into the theoretical concept of hypercomputation.

<span class="mw-page-title-main">Matthias Felleisen</span> German-American computer science professor and author

Matthias Felleisen is a German-American computer science professor and author. He grew up in Germany and immigrated to the US in his twenties. He received his PhD from Indiana University under the direction of Daniel P. Friedman.

<span class="mw-page-title-main">Racket (programming language)</span> Lisp dialect

Racket is a general-purpose, multi-paradigm programming language and a multi-platform distribution that includes the Racket language, compiler, large standard library, IDE, development tools, and a set of additional languages including Typed Racket, Swindle, FrTime, Lazy Racket, R5RS & R6RS Scheme, Scribble, Datalog, Racklog, Algol 60 and several teaching languages.

<span class="mw-page-title-main">Programming language theory</span> Branch of computer science

Programming language theory (PLT) is a branch of computer science that deals with the design, implementation, analysis, characterization, and classification of formal languages known as programming languages. Programming language theory is closely related to other fields including mathematics, software engineering, and linguistics. There are a number of academic conferences and journals in the area.

In computer programming, a programming language specification is a documentation artifact that defines a programming language so that users and implementors can agree on what programs in that language mean. Specifications are typically detailed and formal, and primarily used by implementors, with users referring to them in case of ambiguity; the C++ specification is frequently cited by users, for instance, due to the complexity. Related documentation includes a programming language reference, which is intended expressly for users, and a programming language rationale, which explains why the specification is written as it is; these are typically more informal than a specification.

Gambit, also called Gambit-C, is a programming language, a variant of the language family Lisp, and its variants named Scheme. The Gambit implementation consists of a Scheme interpreter, and a compiler which compiles Scheme into the language C, which makes it cross-platform software. It conforms to the standards R4RS, R5RS, and Institute of Electrical and Electronics Engineers (IEEE), and to several Scheme Requests for Implementations (SRFIs). Gambit was released first in 1988, and Gambit-C (Gambit with a C backend) was released first in 1994. They are free and open-source software released under a GNU Lesser General Public License (LGPL) 2.1, and Apache License 2.0.

Larceny is an implementation of the Scheme programming language built around the Twobit optimizing compiler. Larceny offers several back-ends able to target native x86 and ARMv7 code. Petit Larceny is also available and emits C source code, which can then be further compiled to native code with an ordinary C compiler.

<span class="mw-page-title-main">SCM (Scheme implementation)</span> Implementation of the Scheme programming language

SCM is a programming language, a dialect of the language Scheme.

Gul Agha is a professor of computer science at the University of Illinois at Urbana-Champaign, and director of the Open Systems Laboratory. He is known for his work on the actor model of concurrent computation, and was also Editor-in-Chief of ACM Computing Surveys from 1999 to 2007. Agha was born and completed his early schooling in Sindh, Pakistan. Agha completed his B.S. with honors at the California Institute of Technology in the year 1977. He received his Ph.D. in Computer and Communication Science from the University of Michigan in 1986 under the supervision of John Holland. However, much of his doctoral research was carried out in Carl Hewitt's Message-Passing Semantics Group at Massachusetts Institute of Technology (MIT). Agha's dissertation was published by the MIT Press as Actors: a model of concurrent computation in distributed systems, a book which, according to the ACM Guide to Computing Literature, has been cited over 3000 times.

<span class="mw-page-title-main">Carl Hewitt</span> American computer scientist; Planner programming languagedesigner (1944-2022)

Carl Eddie Hewitt was an American computer scientist who designed the Planner programming language for automated planning and the actor model of concurrent computation, which have been influential in the development of logic, functional and object-oriented programming. Planner was the first programming language based on procedural plans invoked using pattern-directed invocation from assertions and goals. The actor model influenced the development of the Scheme programming language, the π-calculus, and served as an inspiration for several other programming languages.

The history of the programming language Scheme begins with the development of earlier members of the Lisp family of languages during the second half of the twentieth century. During the design and development period of Scheme, language designers Guy L. Steele and Gerald Jay Sussman released an influential series of Massachusetts Institute of Technology (MIT) AI Memos known as the Lambda Papers (1975–1980). This resulted in the growth of popularity in the language and the era of standardization from 1990 onward. Much of the history of Scheme has been documented by the developers themselves.

<span class="mw-page-title-main">Khoury College of Computer Sciences</span> Computer science department of an American university

The Khoury College of Computer Sciences is the computer science school of Northeastern University in Boston, Massachusetts. It was the first college in the United States dedicated to the field of computer science when it was founded in 1982. In addition to computer science, it specializes in data science and cybersecurity. The college was also among the first to offer an information assurance degree program.

References

  1. "William D. Clinger". Khoury College of Computer Sciences. Northeastern University. Retrieved 2019-04-07.
  2. "Scheme Standards". SchemePunks. Retrieved 2009-01-09.
  3. 1 2 Schedule. Lisp50. Retrieved 2009-01-09.
  4. Costanza, Pascal (October 2008). "William Clinger will speak at Lisp50". Lisp50. Retrieved 2009-01-10.
  5. Clinger, William (June 1981). "Foundations of Actor Semantics". Mathematics Doctoral Dissertation. MIT. hdl:1721.1/6935.{{cite journal}}: Cite journal requires |journal= (help)
  6. Steele, Guy L.; Sussman, Gerald Jay (December 1998). "The First Report on Scheme Revisited" (PDF). Higher-Order and Symbolic Computation. 11 (4): 399–404. doi:10.1023/A:1010079421970. S2CID   7704398 . Retrieved 2006-06-19.
  7. Kantrowitz, Mark; Margolin, Barry (1997). "Commercial Scheme implementations". FAQ: Scheme Implementations and Mailing Lists. Retrieved 2009-01-10. MacScheme is a Scheme interpreter and compiler for the Apple Macintosh, and includes an editor, debugger and object system. ... Implemented by Will Clinger, John Ulrich, Liz Heller and Eric Ost.
  8. Clinger, William D. (2008). "History". The Larceny Project. Retrieved 2009-01-10.