Matthias Felleisen is a
German-American
German Americans (german: Deutschamerikaner, ) are Americans who have full or partial German ancestry. With an estimated size of approximately 43 million in 2019, German Americans are the largest of the self-reported ancestry groups by the Unite ...
computer science
Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to Applied science, practical discipli ...
professor and author. He grew up in Germany and immigrated to the US when he was 21 years old.
He received his PhD from
Indiana University
Indiana University (IU) is a system of public universities in the U.S. state of Indiana.
Campuses
Indiana University has two core campuses, five regional campuses, and two regional centers under the administration of IUPUI.
*Indiana Universit ...
under the direction of
Daniel P. Friedman.
After serving as professor for 14 years in the Computer Science Department of
Rice University
William Marsh Rice University (Rice University) is a Private university, private research university in Houston, Houston, Texas. It is on a 300-acre campus near the Houston Museum District and adjacent to the Texas Medical Center. Rice is ranke ...
, Felleisen joined the
Khoury College of Computer Sciences
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. I ...
at
Northeastern University in
Boston
Boston (), officially the City of Boston, is the state capital and most populous city of the Commonwealth of Massachusetts, as well as the cultural and financial center of the New England region of the United States. It is the 24th- mo ...
,
as Trustee Professor.
Felleisen's interests include programming languages, including software tools, program design, software contracts, and many more.
In the 1990s, Felleisen launched
PLT and TeachScheme! (later
ProgramByDesign
The ProgramByDesign (formerly TeachScheme!) project is an outreach effort of the PLT research group. The goal is to train college faculty, high school teachers, and possibly even middle school teachers, in programming and computing.
History
Matt ...
and eventually giving rise to the Bootstrap project
) with the goal of teaching program-design principles to beginners and to explore the use of
Scheme A scheme is a systematic plan for the implementation of a certain idea.
Scheme or schemer may refer to:
Arts and entertainment
* ''The Scheme'' (TV series), a BBC Scotland documentary series
* The Scheme (band), an English pop band
* ''The Schem ...
to produce large systems. As part of this effort, he authored ''
How to Design Programs
''How to Design Programs'' (''HtDP'') is a textbook by Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi on the systematic design of computer programs. MIT Press published the first edition in 2001, and the sec ...
'' (
MIT Press
The MIT Press is a university press affiliated with the Massachusetts Institute of Technology (MIT) in Cambridge, Massachusetts (United States). It was established in 1962.
History
The MIT Press traces its origins back to 1926 when MIT publish ...
, 2001) with
Findler,
Flatt, and
Krishnamurthi.
For his dissertation Felleisen developed an extension of Church's
lambda calculus
Lambda calculus (also written as ''λ''-calculus) is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution. It is a universal model of computation ...
with assignment statements and continuation operators. The dissertation re-proved the
Church-Rosser theorem and the Curry-Feys Standardization Theorem for these extended calculus. It thus established a novel form of operational semantics for higher-order functional languages with imperative extensions. Its most well-known application is for a proof of
type safety
In computer science, type safety and type soundness are the extent to which a programming language discourages or prevents type errors. Type safety is sometimes alternatively considered to be a property of facilities of a computer language; that is ...
, worked out with his PhD student Andrew Wright.
Tim Griffin showed a few years later that Felleisen's
lambda calculus
Lambda calculus (also written as ''λ''-calculus) is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution. It is a universal model of computation ...
with continuation operations is in a
Curry-Howard correspondence to classical logic, a controversial insight at the time. In a similar vein, Barker and Shan connected continuations and especially Felleisen's delimited continuations calculus the linguistic concepts via Montague grammars. Part I of "Semantics Engineering with PLT Redex"
) is derived from his dissertation.
Control delimiters, the basis of
delimited continuations, were introduced by Felleisen
in 1988. They have since been used in many domains, particularly in defining new
control operators; see Queinnec
for a survey.
A-normal form (ANF), an
intermediate representation
An intermediate representation (IR) is the data structure or code used internally by a compiler or virtual machine to represent source code. An IR is designed to be conducive to further processing, such as optimization and translation. A "good" ...
of
program
Program, programme, programmer, or programming may refer to:
Business and management
* Program management, the process of managing several related projects
* Time management
* Program, a part of planning
Arts and entertainment Audio
* Progra ...
s in functional compilers were introduced by Sabry and Felleisen in 1992 as a simpler alternative to
continuation-passing style In functional programming, continuation-passing style (CPS) is a style of programming in which control is passed explicitly in the form of a continuation. This is contrasted with direct style, which is the usual style of programming. Gerald Jay Suss ...
(CPS). An implementation in the CAML compiler demonstrated the useful its practical usefulness and popularized the idea
With Findler, Felleisen developed the notion of higher-order contracts. With such contracts, programmers can express assertions about the behavior of first-class functions, objects, classes and modules. Felleisen's work on gradual typing was a direct continuation of his work on these contracts; see below.
In support of the TeachScheme! project, Felleisen and his team of
Findler,
Flatt, and
Krishnamurthi designed and implemented the
Racket programming language
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 R ...
., Racket (nee PLT Scheme). The idea was to create a programming language with which it would be easy to quickly build pedagogic languages for novice students---a programmable programming language
Flatt remains the lead architect of the Racket effort to this day.
This Racket programming language has played a key role in the recent development of
gradual typing
Gradual typing is a type system in which some variable (computer science), variables and expressions may be given types and the correctness of the typing is checked at compile time (which is static typing) and some expressions may be left untyped ...
. In 2006, Felleisen and his PhD student Sam Tobin-Hochstadt started the Typed Racket project with the goal of allowing developers to migrate code from an untyped programming language to the same syntax enriched with a sound type system The Typed Racket language was the first to fully implement and support the idea of "gradually typing" a code base and remains under active development.
Felleisen gave the keynote addresses at the 2011
Technical Symposium on Computer Science Education, 2010
International Conference on Functional Programming The ACM SIGPLAN International Conference on Functional Programming (ICFP) is an annual academic conference in the field of computer science sponsored by the ACM SIGPLAN, in association with IFIP Working Group 2.8 (Functional Programming). The con ...
,
2004
European Conference on Object-Oriented Programming and the 2001 Symposium on
Principles of Programming Languages
The annual ACM SIGPLAN- SIGACT Symposium on Principles of Programming Languages (POPL) is an academic conference in the field of computer science, with focus on fundamental principles in the design, definition, analysis, and implementation of prog ...
, and several other conferences and workshops on computer science.
In 2006, he was inducted as a
fellow
A fellow is a concept whose exact meaning depends on context.
In learned or professional societies, it refers to a privileged member who is specially elected in recognition of their work and achievements.
Within the context of higher education ...
of the
Association for Computing Machinery
The Association for Computing Machinery (ACM) is a US-based international learned society for computing. It was founded in 1947 and is the world's largest scientific and educational computing society. The ACM is a non-profit professional member ...
. In 2009, he received the Karl V. Karlstrom Outstanding Educator Award from the
ACM.
In 2010, he received th
SIGCSE Award for Outstanding Contribution to Computer Science Educationfrom the ACM. In 2012, he received the ACM SIGPLAN Programming Languages Achievement Award for "significant and lasting contribution to the field of programming languages"
including small-step operational semantics for control and state, mixin classes and mixin modules, a fully abstract semantics for Sequential PCF, web programming techniques, higher-order contracts with blame, and static typing for dynamic languages.
Books
Felleisen is co-author of:
*
Realm Of Racket' (No Starch Press, 2013)
*
Semantics Engineering with PLT Redex' (MIT Press, 2009)
*
How to Design Programs' (MIT Press, 2001, 2nd Ed. 2018)
*
' (MIT Press, 1998)
*
' (MIT Press, 1998)
*
' (MIT Press, 4th Ed., 1996)
*
' (MIT Press, 1996)
*
' (MIT Press, 1987)
References
External links
Matthias at Northeastern UniversityKhoury College of Computer Sciences at Northeastern University
{{DEFAULTSORT:Felleisen, Matthias
Year of birth missing (living people)
Living people
American instructional writers
Programming language researchers
Lisp (programming language) people
Northeastern University faculty
Fellows of the Association for Computing Machinery
Rice University faculty
Indiana University alumni
Computer science educators