Daniel P. Friedman
   HOME

TheInfoList



OR:

Daniel Paul Friedman (born 1944) is a professor emeritus of
Computer Science Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, ...
at
Indiana University Indiana University (IU) is a state university system, system of Public university, public universities in the U.S. state of Indiana. The system has two core campuses, five regional campuses, and two regional centers under the administration o ...
in
Bloomington, Indiana Bloomington is a city in Monroe County, Indiana, United States, and its county seat. The population was 79,168 at the 2020 United States census, 2020 census. It is the List of municipalities in Indiana, seventh-most populous city in Indiana and ...
. His research focuses on
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
s, 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," 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 Parallel computing is a type of computing, computation in which many calculations or Process (computing), processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time. ...
. 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. With Christopher T. Haynes and Mitchell Wand, he simultaneously studied the nature of continuation objects, their uses, and the possibilities of constraining them. Following that, Friedman and Felleisen introduced a
lambda calculus In mathematical logic, the lambda calculus (also written as ''λ''-calculus) is a formal system for expressing computability, computation based on function Abstraction (computer science), abstraction and function application, application using var ...
with continuations and control operators.


Books

Daniel P. Friedman is the author or co-author of the following books: * ''The Little Lisper'' * ''The Little Schemer'' * ''The Little MLer'' * ''A Little Java, A Few Patterns'' * ''The Seasoned Schemer'' * ''The Reasoned Schemer'' * ''The Little Prover'' * '' Essentials of Programming Languages'' * ''Scheme and the Art of Programming'' * ''Coordinated Computing: Tools and Techniques for Distributed Software'' * ''The Little Typer'' * ''The Little Learner''


External links


Daniel P. Friedman's Homepage

The Little Schemer's Homepage

Cons should not evaluate its arguments, the technical report version


* ttps://www.youtube.com/watch?v=IHP7P_HlcBk "Dan Friedman—Cool Ideas" Guy Steele's keynote talk at DanFest reviewing Friedman's work


References

{{DEFAULTSORT:Friedman, Daniel P. Programming language researchers Indiana University faculty 1944 births Living people