Daniel P. Friedman

{{other people||Daniel Friedman (disambiguation)}}

{{short description|American computer science academic}}

{{Infobox scientist

| name = Daniel Paul Friedman

| field = Computer Science

| known_for = Programming Languages

| birth_date = {{birth year and age|1944}}

| alma_mater = University of Houston{{Cite web|url=https://vimeo.com/161794995|title=An Evening with Dan Friedman|date=April 6, 2016|via=Vimeo|access-date=September 11, 2017|archive-date=March 11, 2018|archive-url=https://web.archive.org/web/20180311213605/https://vimeo.com/161794995|url-status=live}}

| workplaces = Indiana University

| notable_works = The Little Schemer, Essentials of Programming Languages, The Little Prover

}}

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

With David Wise, Friedman wrote a highly influential paper on lazy programming, specifically on lazy streams (ICALP 1976). The paper, entitled "Cons should not evaluate its arguments," {{cite journal |last=Friedman |first=Daniel P. |title=Cons should not evaluate its arguments |journal=Automata, Languages and Programming |publisher=Edinburgh University Press |year=1976 }} is one of the first publications pushing for the exploration of a programming style with potentially infinite data structures and a form of programming that employs no computational effects (though programs may diverge). Over the 1970s, Friedman and Wise explored the topic in depth and also considered extensions to the world of parallel computing.

In the 1980s, Friedman turned to the study of the Scheme programming language. He explored the use of macros for defining programming languages; with Eugene Kohlbecker, Matthias Felleisen, and Bruce Duba, he co-introduced the notion of hygienic macros in a 1986 LFP paper that is still widely cited today.{{cite journal |last=Friedman |first=Daniel P. |title=Hygienic Macros |journal=Proceedings of the ACM Symposium on LISP and Functional Programming |year=1986 }} With Christopher T. Haynes and Mitchell Wand, he simultaneously studied the nature of continuation objects, their uses, and the possibilities of constraining them.{{cite journal |last=Friedman |first=Daniel P. |title=Constraining Control |journal=Conference Record of the Annual ACM Symposium on Principles of Programming Languages |year=1985 }} Following that, Friedman and Felleisen introduced a lambda calculus with continuations and control operators.{{cite journal |last=Friedman |first=Daniel P. |title=Reasoning with Continuations |journal=Proceedings of the IEEE Symposium on Logic in Computer Science |year=1986 }}

Books

Daniel P. Friedman is the author or co-author of the following books:

  • The Little Lisper{{cite book |title=The Little Lisper |isbn=0-262-56038-0 |publisher=MIT Press |year=1987 |url=https://felleisen.org/matthias/BTLS-index.html}}
  • The Little Schemer{{cite book |title=The Little Schemer |isbn=0-262-56099-2 |publisher=MIT Press |year=1996 |edition=4th |url=https://felleisen.org/matthias/BTLS-index.html}}
  • The Little MLer{{cite book |title=The Little MLer |isbn=0-262-56114-X |publisher=MIT Press |year=1998 |url=https://felleisen.org/matthias/BTML-index.html}}
  • A Little Java, A Few Patterns{{cite book |title=A Little Java, A Few Patterns |isbn=0-262-56115-8 |publisher=MIT Press |year=1998 |url=https://felleisen.org/matthias/BALJ-index.html}}
  • The Seasoned Schemer{{cite book |title=The Seasoned Schemer |isbn=0-262-56100-X |publisher=MIT Press |year=1996 |url=https://felleisen.org/matthias/BTSS-index.html}}
  • The Reasoned Schemer{{cite book |title=The Reasoned Schemer |isbn=0-262-56214-6 |publisher=MIT Press |year=2018 |url=https://felleisen.org/matthias/BRS-index.html}}
  • The Little Prover{{cite book |title=The Little Prover |isbn=0-262-52795-2 |url=https://the-little-prover.github.io/}}
  • Essentials of Programming Languages{{cite book |title=Essentials of Programming Languages |isbn=0-262-06217-8 |publisher=MIT Press |year=2008 |edition=3rd |url=https://eopl3.com/}}
  • Scheme and the Art of Programming{{cite book |title=Scheme and the Art of Programming |isbn=0-262-19288-8}}
  • Coordinated Computing: Tools and Techniques for Distributed Software{{cite book |title=Coordinated Computing: Tools and Techniques for Distributed Software |isbn=0-07-022439-0}}
  • The Little Typer{{cite book |title=The Little Typer |isbn=9780262536431 |url=https://mitpress.mit.edu/books/little-typer}}
  • The Little Learner{{cite book |title=The Little Learner |isbn=9780262546379 |publisher=MIT Press |year=2023 |url=https://mitpress.mit.edu/9780262546379/the-little-learner}}

References