Matthias Felleisen

Matthias Felleisen
Photograph of Felleisen standing in front of a projector screen, gesturing
Born
Germany
CitizenshipUnited States
EducationPh.D., Indiana University Bloomington (1984–1987)
Diplom. Wi. Ing., University of Karlsruhe (TH) (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
AwardsACM Karl V. Karlstrom Award, ACM Fellow
Scientific career
FieldsComputer scientist
WorkplacesRice University
Northeastern University
Thesis The Calculi of Lambda_v-CS Conversion: A Syntactic Theory of Control and State in Imperative Higher-Order Programming Languages
Daniel P. Friedman

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 Bloomington under the direction of Daniel P. Friedman.

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 programming 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 (Massachusetts Institute of Technology Press (MIT Press), 2001) with Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi.

Research

Felleisen's research on the theory of programming languages yielded the widely used reduction semantics,[3] generalizing the Lambda calculus. The most common use concerns proofs of Type soundness as illustrated by the high citation count.[4] A collaboration with Pierre Louis Curien and Robert Cartwright produced the first sequential and algebraically generated denotational semantics for a higher-order language[5][6] Also see Denotational semantics and its discussion of game semantics.

Felleisen's work on the practice of programming languages includes a range of results. His dissertation proposed the idea of Delimited continuation, an idea that by now is realized in a several contemporary languages using several different techniques, including JavaScript, [7]OCaml,[8] Scala (programming language), [9]and Racket (programming language). [10]Additionally, his theory of delimited continuations started a collaboration with Sabry and produced the A-normal (intermediate) form for compilers. Thes result was selected for the 20-years anniversary collection of the PLDI conference. [11] With Findler, Felleisen generalized software contracts to higher-order languages.[12] Finally, Tobin-Hochstadt and Felleisen used these higher-order contracts to create Typed Racket, the first full-fledged language with a gradual typing system contemporary with Siek and Waha's theoretical effort and coining of the phrase.

Around 1990, Felleisen investigated the expressive power of programming languages[13] [14][15] in an effort to understand why programmers may prefer one full-fledged programming language over another. While formal language theory equates all languages that can realize Turing machines, practicing programmers reject this notion and tend to attribute different levels of expressivity to different languages. Felleisen's theory restricts the translations from one language to another to those that affect only ``local'' (module) pieces of code, that is, those pieces that an individual programmer can edit. By contrast, formal language theory allows any translation between two languages, which explains why it equates more than Felleisen's theory. --- Over the past five years Christos Dimoulas of Northwestern and Felleisen have tried to make a similar argument using empirical research.[16][17][18][19] [20][21]The key idea is to investigate how much information a language feature delivers in the various work situations that developers encounter. At an abstract level, this research resembles the work on pragmatics by natural linguists.

Awards and honors

Felleisen gave the keynote addresses at the 2011 Technical Symposium on Computer Science Education, 2010 International Conference on Functional Programming,[22] 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 (ACM). In 2009, he received the Karl V. Karlstrom Outstanding Educator Award from the ACM.[23] 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"[24] including small-step operational semantics for control and state, first-class and delimited continuations, 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).[25]

Books

Felleisen co-authored:

  • Realm of Racket. No Starch Press. 2013. ISBN 978-1593274917.
  • Semantics Engineering with PLT Redex. MIT Press. 2009. ISBN 978-0-262-06275-6.
  • How to Design Programs (2nd ed.). MIT Press. 2018. 1st ed. 2001.
  • How to Design Classes (Draft ed.). 2012
  • A Little Java, A Few Patterns. MIT Press. 1998. ISBN 0-262-56115-8.
  • The Little MLer. MIT Press. 1998. ISBN 0-262-56114-X.
  • The Little Schemer (4th ed.). MIT Press. 1996. ISBN 0-262-56099-2.
  • The Seasoned Schemer. MIT Press. 1996. ISBN 0-262-56100-X.
  • The Little Lisper. MIT Press. 1987. ISBN 0-262-56038-0.

References

  1. ↑ "Research". Retrieved 2012-06-26.
  2. ↑ "Bootstrap World". Retrieved 2019-05-31.
  3. ↑ Felleisen, Matthias (August 1987). The Calculi of Lambda_v-CS Conversion. Bloomington, IN: Indiana University (published 1987). p. 245.{{cite book}}: CS1 maint: date and year (link)
  4. ↑ "A syntactic approach to type soundness". scholar.google.com. Retrieved 2026-07-22.
  5. ↑ Cartwright, Robert; Felleisen, Matthias (1992-02-01). "Observable sequentiality and full abstraction". Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '92. New York, NY, USA: Association for Computing Machinery. pp. 328–342. doi:10.1145/143165.143232. ISBN 978-0-89791-453-6.
  6. ↑ Cartwright, Robert (1994). "Fully Abstract Semantics for Observably Sequential Languages". Information and Computation. 111 (2): 297–401. doi:10.1006/inco.1994.1047 – via ScienceDirect.
  7. ↑ Phipps-Costin, Luna; Rossberg, Andreas; Guha, Arjun; Leijen, Daan; Hillerström, Daniel; Sivaramakrishnan, Kc; Pretnar, Matija; Lindley, Sam (2023-10-16). "Continuing WebAssembly with Effect Handlers". Proceedings of the ACM on Programming Languages. 7 (OOPSLA2): 460–485. doi:10.1145/3622814. ISSN 2475-1421.
  8. ↑ Kiselyov, Oleg (2012-06-01). "Delimited control in OCaml, abstractly and concretely". Theoretical Computer Science. Functional and Logic Programming. 435: 56–76. doi:10.1016/j.tcs.2012.02.025. ISSN 0304-3975.
  9. ↑ Rompf, Tiark; Maier, Ingo; Odersky, Martin (2009-08-31). "Implementing first-class polymorphic delimited continuations by a type-directed selective CPS-transform". Proceedings of the 14th ACM SIGPLAN international conference on Functional programming. ACM. pp. 317–328. doi:10.1145/1596550.1596596. ISBN 978-1-60558-332-7.
  10. ↑ Flatt, Matthew; Dybvig, R. Kent (2020-06-11). "Compiler and runtime support for continuation marks". Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM. pp. 45–58. doi:10.1145/3385412.3385981. ISBN 978-1-4503-7613-6.
  11. ↑ "SIGPLAN: Vol 39, No 4". ACM SIGPLAN Notices. Retrieved 2026-07-24.
  12. ↑ Findler, Robert (17 September 2002). "Contracts for higher-order functions". Proceedings of the seventh ACM SIGPLAN international conference on Functional programming. pp. 48–59. doi:10.1145/581478.581484. ISBN 1-58113-487-8.
  13. ↑ Felleisen, Matthias (December 1991). "On the expressive power of programming languages". Science of Computer Programming. 17 (1–3): 35–75. doi:10.1016/0167-6423(91)90036-W.
  14. ↑ PapersWeLove (2019-09-19). On the Expressive Power of Programming Languages by Shriram Krishnamurthi [PWLConf 2019]. Retrieved 2026-07-27 – via YouTube.
  15. ↑ Forster, Yannick; Kammar, Ohad; Lindley, Sam; Pretnar, Matija (2017-08-29). "On the expressive power of user-defined effects: effect handlers, monadic reflection, delimited control". Proceedings of the ACM on Programming Languages. 1: 13:1–13:29. doi:10.1145/3110257.
  16. ↑ Dimoulas, Christos; Felleisen, Matthias (2025-06-27). "The Rational Programmer: Investigating Programming Language Pragmatics". Communications of the ACM. 68 (7): 120–130. doi:10.1145/3708981. ISSN 0001-0782.
  17. ↑ Lazarek, Lukas; Greenman, Ben; Felleisen, Matthias; Dimoulas, Christos (2021-08-19). "How to evaluate blame for gradual types". Proceedings of the ACM on Programming Languages. 5: 68:1–68:29. doi:10.1145/3473573.
  18. ↑ Lazarek, Lukas; Greenman, Ben; Felleisen, Matthias; Dimoulas, Christos (2023-08-31). "How to Evaluate Blame for Gradual Types, Part 2". Proceedings of the ACM on Programming Languages. 7: 194:159–194:186. doi:10.1145/3607836.
  19. ↑ Ben Greenman; Matthias Felleisen; Christos Dimoulas; Hejduk, Nathaniel (2023-07-11), Artifact for How Profilers Can Help Navigate Type Migration, doi:10.5281/ZENODO.8148784, retrieved 2026-07-27
  20. ↑ Su, Chenghao; Chen, Lin; Yanhui, Li; Zhou, Yuming (January 2024). "Static Blame for gradual typing". Journal of Functional Programming. 34 e4. doi:10.1017/S0956796824000029. ISSN 0956-7968.
  21. ↑ Dzhatdoyev, Shamil; Des Rosiers, Josephine A.; Morazán, Marco T. (1 August 2024). "Error Messages for Students Taught Using a Systematic Program Design Curriculum". Trends in Functional Programming: 25th International Symposium, TFP 2024, South Orange, NJ, USA, January 10–12, 2024, Revised Selected Papers. Lecture Notes in Computer Science. Vol. 2025. Berlin, Heidelberg: Springer-Verlag. pp. 195–219. doi:10.1007/978-3-031-74558-4_9. ISBN 978-3-031-74557-7.
  22. ↑ "ICFP 2010: The 15th ACM SIGPLAN International Conference on Functional Programming". Retrieved 2012-12-18.
  23. ↑ "ACM Award Citation". Archived from the original on 2012-05-04. Retrieved 2012-06-26.
  24. ↑ "Programming Languages Achievement Award". Retrieved 2012-06-26.
  25. ↑ "Programming Languages Software Award". www.sigplan.org. Retrieved 2024-02-12.