Matthias Felleisen

Last updated
Matthias Felleisen
Matthias Felleisen.jpg
Born
Germany
CitizenshipUnited States
Education Ph.D., Indiana University (1984-1987)
Diplom. Wi. Ing., Technische Universität Karlsruhe (1978-1983)
Master of Science, University of Arizona, Tucson (1980-1981)
Known forFounder of PLT, operational semantics, type safety, continuations, gradual typing, A-normal form
Awardsthe ACM Karl V. Karlstrom Award, ACM Fellow
Scientific career
Fields Computer scientist
Institutions Rice University
Northeastern University
Thesis The Calculi of Lambda_v-CS Conversion: A Syntactic Theory of Control and State in Imperative Higher-Order Programming Languages

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.

Contents

After serving as professor for 14 years in the Computer Science Department of Rice University, Felleisen joined the Khoury College of Computer Sciences at Northeastern University in Boston, Massachusetts as Trustee Professor.

Felleisen's interests include programming languages, including software tools, program design, software contracts, and many more. [1] In the 1990s, Felleisen launched PLT and TeachScheme! (later ProgramByDesign and eventually giving rise to the Bootstrap project [2] ) with the goal of teaching program-design principles to beginners and to explore the use of Scheme to produce large systems. As part of this effort, he authored How to Design Programs (MIT Press, 2001) with Findler, Flatt, and Krishnamurthi.

Awards and honors

Felleisen gave the keynote addresses at the 2011 Technical Symposium on Computer Science Education, 2010 International Conference on Functional Programming, [3] 2004 European Conference on Object-Oriented Programming and the 2001 Symposium on Principles of Programming Languages, and several other conferences and workshops on computer science.

In 2006, he was inducted as a fellow of the Association for Computing Machinery. In 2009, he received the Karl V. Karlstrom Outstanding Educator Award from the ACM. [4] In 2010, he received the SIGCSE Award for Outstanding Contribution to Computer Science Education from the ACM. In 2012, he received the ACM SIGPLAN Programming Languages Achievement Award for "significant and lasting contribution to the field of programming languages" [5] 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. In 2018, Felleisen received the ACM SIGPLAN's Programming Languages Software Award (jointly with the rest of the Racket core team). [6]

Books

Felleisen is co-author of:

Related Research Articles

<span class="mw-page-title-main">Robin Milner</span> British computer scientist (1934–2010)

Arthur John Robin Gorell Milner was a British computer scientist, and a Turing Award winner.

<span class="mw-page-title-main">Gerald Jay Sussman</span> American computer scientist

Gerald Jay Sussman is the Panasonic Professor of Electrical Engineering at the Massachusetts Institute of Technology (MIT). He has been involved in artificial intelligence (AI) research at MIT since 1964. His research has centered on understanding the problem-solving strategies used by scientists and engineers, with the goals of automating parts of the process and formalizing it to provide more effective methods of science and engineering education. Sussman has also worked in computer languages, in computer architecture, and in Very Large Scale Integration (VLSI) design.

<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.

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, some facilities are type-safe and their usage will not result in type errors, while other facilities in the same language may be type-unsafe and a program using them may encounter type errors. The behaviors classified as type errors by a given programming language are usually those that result from attempts to perform operations on values that are not of the appropriate data type, e.g., adding a string to an integer when there's no definition on how to handle this case. This classification is partly based on opinion.

SIGPLAN is the Association for Computing Machinery's Special Interest Group on programming languages.

Daniel Paul Friedman is a professor of Computer Science at Indiana University in Bloomington, Indiana. His research focuses on programming languages, and he is a prominent author in the field.

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

Racket is a general-purpose, multi-paradigm programming language. The Racket language is a modern dialect of Lisp and a descendant of Scheme. It is designed as a platform for programming language design and implementation. In addition to the core Racket language, Racket is also used to refer to the family of programming languages and set of tools supporting development on and with Racket. Racket is also used for scripting, computer science education, and research.

The ProgramByDesign 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.

Brent Hailpern is a computer scientist retired from IBM Research. His research work focused on programming languages, software engineering, and concurrency.

<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.

Matthew Flatt is an American computer scientist and professor at the University of Utah School of Computing in Salt Lake City. He is also the leader of the core development team for the Racket programming language.

The expression problem is a challenging problem in programming languages that concerns the extensibility and modularity of statically typed data abstractions. The goal is to define a data abstraction that is extensible both in its representations and its behaviors, where one can add new representations and new behaviors to the data abstraction, without recompiling existing code, and while retaining static type safety. The statement of the problem exposes deficiencies in programming paradigms and programming languages, and as of 2023 is still considered unsolved, although there are many proposed solutions.

<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.

Shriram Krishnamurthi is a computer scientist, currently a professor of computer science at Brown University and a member of the core development group for the Racket programming languages, responsible for creation of software packages including the Debugger, the FrTime package, and the networking library. Since 2006, Krishnamurthi has been a leading contributor to the Bootstrap curriculum, a project to integrate computer science education into grades 6–12.

Robert Bruce Findler, colloquially known as "Robby", is an American computer scientist, currently, a professor of computer science at Northwestern University. He is also a member of the PLT group and, as such, responsible for the creation and maintenance of DrRacket. In addition to DrRacket, Findler has contributed numerous components to Racket and supervises its Web-based software library, called PLaneT. Findler is also a leading team member of the ProgramByDesign project.

Gradual typing is a type system in which some variables and expressions may be given types and the correctness of the typing is checked at compile time and some expressions may be left untyped and eventual type errors are reported at runtime. Gradual typing allows software developers to choose either type paradigm as appropriate, from within a single language. In many cases gradual typing is added to an existing dynamic language, creating a derived language allowing but not requiring static typing to be used. In some cases a language uses gradual typing from the start.

A language workbench is a tool or set of tools that enables software development in the language-oriented programming software development paradigm. A language workbench will typically include tools to support the definition, reuse and composition of domain-specific languages together with their integrated development environment. Language workbenches were introduced and popularized by Martin Fowler in 2005.

A CEK Machine is an abstract machine invented by Matthias Felleisen and Daniel P. Friedman that implements left-to-right call by value. It is generally implemented as an interpreter for functional programming languages, but can also be used to implement simple imperative programming languages. A state in a CEK machine includes a control statement, environment and continuation. The control statement is the term being evaluated at that moment, the environment is (usually) a map from variable names to values, and the continuation stores another state, or a special halt case. It is a simplified form of another abstract machine called the SECD machine.

References

  1. "Research" . Retrieved 2012-06-26.
  2. "Bootstrap World" . Retrieved 2019-05-31.
  3. "ICFP 2010 Homepage" . Retrieved 2012-12-18.
  4. "ACM Award Citation". Archived from the original on 2012-05-04. Retrieved 2012-06-26.
  5. "Programming Languages Achievement Award" . Retrieved 2012-06-26.
  6. "Programming Languages Software Award". www.sigplan.org. Retrieved 2024-02-12.