Professor William D. Clinger | |
---|---|
Citizenship | United States |
Education | PhD, 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]
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]
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
{{cite journal}}
: Cite journal requires |journal=
(help)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.