Publications
Books
- Daniel P. Friedman The Little LISPer, Science
Research Associates, Inc. (1974).
- Robert E. Filman and Daniel P. Friedman. Coordinated
Computing: Tools and Techniques for Distributed
Software, McGraw-Hill (1984); Translated into
Japanese (1986).
- Daniel P. Friedman and Matthias Felleisen. The Little
LISPer: Second Edition, Science Research Associates,
Inc. (1986); Third Edition, Macmillan, (1989).
- Daniel P. Friedman and Matthias Felleisen. The Little
LISPer: Trade Edition, MIT Press, (1987); Translated
into Japanese, McGraw Hill Int'l., (1990);
Translated into French, Masson Publishers, (1991).
- George Springer and Daniel P. Friedman. Scheme and the
Art of Programming, Jointly published by M.I.T. Press &
McGraw-Hill (1989). Second Printing (1991).
- George Springer and Daniel P. Friedman. Scheme and the
Art of Programming, Answer Book, M.I.T. Press &
McGraw-Hill (1990).
- Daniel P. Friedman, Mitchell Wand and Christopher
T. Haynes. Essentials of Programming Languages,
M.I.T. Press & McGraw-Hill (1992).
- Daniel P. Friedman and Matthias Felleisen The Seasoned Schemer,
M.I.T. Press (1996).
- Daniel P.Friedman and Matthias Felleisen The Little Schemer: Fourth
Edition, M.I.T. Press (1996).
- Matthias Felleisen and Daniel P. Friedman, The Little MLer
, M.I.T. Press (1998). (Also in Japanese, 2009)
- Matthias Felleisen and Daniel P. Friedman, A Little Java,
A Few Patterns , M.I.T. Press (1998). (Also in Japanese)
- Daniel P. Friedman, Mitchell Wand and Christopher
T. Haynes. Essentials of Programming Languages
Second Edition , M.I.T. Press (2001).
- Matthias Felleisen and Daniel P. Friedman, A Little Java,
A Few Patterns , M.I.T. Press (1998). (Also in Japanese)
- Daniel P. Friedman, William E. Byrd, and Oleg Kiselyov, The
Reasoned Schemer,, M.I.T. Press (2005).
- Daniel P. Friedman and Mitchell Wand. Essentials of Programming Languages
Third Edition , M.I.T. Press (2008).
Refereed Publications
- Terrence W. Pratt and Daniel P. Friedman. "A language
extension for graph processing and its formal semantics,"
Comm. ACM 14, 7 (July 1971), 460--467.
- David S. Wise, Daniel P. Friedman, Stuart C. Shapiro, and
Mitchell Wand. "Boolean-valued loops," BIT 15, 4
(December 1975), 431--451.
- Daniel P. Friedman and David S. Wise. "Cons should
not evaluate its arguments," in S. Michaelson and R. Milner
(eds.) Automata, Languages and Programming,
Edinburgh University Press (Edinburgh, 1976), 257--284.
- Daniel P. Friedman, David S. Wise, and Mitchell Wand.
"Recursive programming through table look-up," Proc. ACM
Symposium on Symbolic and Algebraic Computation (1976),
85--89.
- Daniel P. Friedman and David S. Wise. "Garbage collecting a
heap which includes a scatter table," Information
Processing Letters 5, 6 (December 1976), 161--164.
- Daniel P. Friedman and David S. Wise. "Output driven
interpretation of recursive programs, or writing creates and
destroys data structures," Information Processing Letters
5, 6 (December 1976), 155--160.
- Daniel P. Friedman and David S. Wise. "An environment for
multiple-valued recursive procedures," Programmation,
B. Robinet (ed.), Dunod Informatique (Paris, 1977), 182--200.
- Daniel P Friedman and David S. Wise. "Aspects of applicative
programming for file systems," Proceedings 1977 ACM
Conference on Language Design for Reliable Software,
(1977), 41--55.
- John D. Lowrance and Daniel P. Friedman. "Hendrix's model
for simultaneous actions and continuous processes: an
introduction and implementation," Int. J. Man-Machine
Studies 9, 5 (September 1977), 537--581. Unrevised version
appeared as "The Hendrix model of simultaneous actions and
continuous processes: an introduction and implementation
description," Computer Science Department, Technical Report
#33, Indiana University (1974). (Appendices include code of system.)
- David S. Wise and Daniel P. Friedman. "The one bit reference
count," BIT 17, 3 (September 1977), 351--359.
- Daniel P. Friedman and David S. Wise. "Functional
combination," Computer Languages 3, 1 (January 1978),
31--35.
- Daniel P. Friedman and David S. Wise. "Aspects of applicative
programming for parallel processing," IEEE Trans. Computers
C-27, 4 (April 1978), 289--296. Unrevised version appeared
as "The impact of applicative programming on multiprocessing,"
Proc. 1976 International Conference on Parallel
Processing (IEEE Cat. No. 76CH1127--OC), 263--272.
- Daniel P. Friedman and David S. Wise. "Unbounded
computational structures," Software-Practice and
Experience 8, 4 (August 1978), 407--416.
- Daniel P. Friedman and David S. Wise. "A conditional,
interlock-free store instruction," in M.P. Pursley and
J.B. Cruz, Jr., (eds.), Proc. 16th Allerton Conf. on
Communication, Control and Computing, University of
Illinois, Urbana, IL (1978), 578--584.
- Daniel P Friedman and David S. Wise. "A note on conditional
expressions," Comm. ACM 2l, 11 (November 1978), 931--933.
- Mitchell Wand and Daniel P. Friedman. "Compiling lambda
expressions using continuations and factorizations,"
Computer Languages 3, (1978), 241--263.
- Daniel P Friedman and David S. Wise. "Reference counting can
manage the circular environments of mutual recursion,"
Information Processing Letters 8, 1 (January 1979), 41--44.
- Daniel P. Friedman and David S. Wise. "An approach to fair
applicative multiprogramming," Semantics of Concurrent
Computation (G. Kahn, ed.), Lecture Notes in Computer
Science, Vol. 70, Springer, Berlin (1979), 203--226.
- Daniel P. Friedman and David S. Wise. "An indeterminate
constructor for applicative programming," Record 7th
Principles of Programming Languages (January 1980),
245--250.
- Richard M. Salter, Terrence J. Brennan, and Daniel
P. Friedman. "CONCUR: A language for continuous, concurrent
processes," Computer Languages 5 (1980), 163--189.
- Daniel P. Friedman and David S. Wise. "Fancy ferns require
little care," Symposium on Functional Languages and
Computer Architecture. S. Holmstrom, Nordstrom, B., and
Wikstrom, A. (eds.), Laboratory for Programming Methodology,
Goteborg, Sweden (1981).
- Robert E. Filman and Daniel P. Friedman. "Models, languages
and heuristics for distributed computing," National Computer
Conference, June 1982, AFIPS Conf. Proc., AFIPS
Press. Arlington, VA (1982), 671--677.
- Daniel P. Friedman, Christopher T. Haynes, and Eugene
E. Kohlbecker, "Programming with continuations," Program
Transformation and Programming Environments, (P. Pepper,
ed.), Springer-Verlag Berlin Heidelberg (1984), 263--274.
- Daniel P. Friedman and Mitchell Wand. "Reification: reflection
without metaphysics," Conference Record of the 1984 ACM
Symposium on LISP and Functional Programming, Austin, TX
(August 1984), 348--355.
- Daniel P. Friedman and Christopher T. Haynes. "Constraining
control," Conf. Record of the 12th Annual ACM Symposium on
Principles of Programming Languages, New Orleans, LA
(January 1985), 245--254.
- William D. Clinger, Daniel P. Friedman, and Mitchell Wand.
"A scheme for a higher-level semantic algebra," Algebraic
Methods in Semantics, (J. Reynolds &\ M. Nivat, eds.),
Cambridge University Press (1985), 237--250.
- Matthias Felleisen and Daniel P. Friedman. "A closer look at
export and import statements," Computer Languages 11,
1 (1986), 29--37.
- Matthias Felleisen, Daniel P. Friedman, Eugene E. Kohlbecker,
and Bruce Duba. "Reasoning with continuations," Symposium
on Logic in Computer Science, Cambridge, MA (June
1986), 131--141.
- Matthias Felleisen and Daniel P. Friedman. "Control operators,
the SECD-machine, and the lambda-calculus," 3rd Working
Conference on the Formal Description of Programming
Concepts, Ebberup, Denmark (August 1986), 193--219.
- Christopher T. Haynes, Daniel P. Friedman, and Mitchell Wand.
"Obtaining coroutines with continuations," Computer
Languages 11, No. 3/4 (1986), 143--153. Unrevised version
appeared as "Continuations and coroutines," Conference
Record of the 1984 ACM Symposium on LISP and Functional
Programming, Austin, TX (August 1984), 293--298.
- Eugene E. Kohlbecker, Daniel P. Friedman, Matthias Felleisen,
and Bruce Duba. "Hygienic macro expansion," Proceedings
1986 ACM Symposium on LISP and Functional Programming
(August 1986), 151--161 .
- Matthias Felleisen and Daniel P. Friedman. "A calculus for
assignments in higher-order languages," Conf. Record of the
14th Annual ACM Symposium on Principles of Programming
Languages, Munich, West Germany (January 1987), 314--345.
- Matthias Felleisen and Daniel P. Friedman. "A reduction
semantics for imperative higher-order languages,"
Parallel Architectures and Languages Europe, (de
Bakker, Nijman & Treleaven, eds.), Lecture Notes in Computer
Science, Vol. 259, Springer, Berlin (1987), 206--223.
- Matthias Felleisen, Daniel P. Friedman, Eugene Kohlbecker, and
Bruce Duba. "A syntactic theory of sequential control,"
Theoretical Computer Science 52 (1987), 205--237.
- Christopher T Haynes and Daniel P. Friedman. "Abstracting
timed preemption with engines," Computer Languages 12,
2 (1987), 109--121. Unrevised version appeared as
"Engines build process abstractions," Conference Record
of the 1984 ACM Symposium on LISP and Functional
Programming, Austin, TX. (August 1984), 18--24.
- Christopher T. Haynes and Daniel P. Friedman. "Embedding
continuations in procedural objects," ACM Transactions on
Programming Languages and Systems 9, 4 (October 1987),
582--598.
- R. Kent Dybvig, Daniel P. Friedman and Christopher T. Haynes.
"Expansion-passing style: A general macro mechanism,"
Lisp and Symbolic Computation 1, 1 (June 1988),
53--75. Unrevised version appeared as "Expansion-passing style:
beyond conventional macros," Proceedings 1986 ACM Symposium
on LISP and Functional Programming (August 1986), 143--150.
- Matthias Felleisen, Daniel P. Friedman, Mitchell Wand and Bruce
Duba. "Abstract continuations: a mathematical semantics for
handling functional jumps," Proceedings 1988 ACM
Symposium on LISP and Functional Programming (July 1988),
52--62. % Salt Lake City, Utah.
- Mitchell Wand and Daniel P. Friedman. "The mystery of the
tower revealed: a non-reflective description of the reflective
tower," Lisp and Symbolic Computation 1, 1 (1988),
11-38. Also appeared in Meta-Level Architectures and
Reflection, P. Maes and D. Nardi, (Editors), Elsevier
Sci. Publishers B.V. (North Holland) (1988), 111--134. Unrevised
version appeared in Proceedings 1986 ACM Symposium on LISP
and Functional Programming (August 1986), 298--307.
- John Franco and Daniel P. Friedman. "Creating efficient
programs by exchanging data for procedures,"
Computer Languages 14, 1 (1989), 11--23.
- Matthias Felleisen and Daniel P. Friedman. "A syntactic theory of
sequential state," Theoretical Computer Science 69.
3 (December, 1989), 243--287. Preliminary version in:
"Proc. 14th ACM Symposium on Principles of Programming
Languages (January, 1987), 314-325.
- John Franco and Daniel P. Friedman. "Towards a facility for
lexically scoped, dynamic mutual recursion in Scheme,"
Computer Languages 15, 1 (1990), 55--64.
- John Franco, Daniel P. Friedman, and Steven
D. Johnson. "Multi-way streams in Scheme," Computer
Languages 15, 2 (1990), 109--125.
- Stanley Jefferson, Shinn-Der Lee, and Daniel P. Friedman. "A
syntactic theory of transparent parameterization,"
Proceedings of the Third European Symposium on
Programming (ESOP '90), Lecture Notes in Computer
Science, Vol. 432, Springer-Verlag, Berlin (1990), 212--226.
- Eric T. Freeman and Daniel P. Friedman. "Characterizing the
paralation model using dynamic assignment," Proceedings of
Parallel Architectures and Languages Europe 1992,
(D. Etiemble and J.-C. Syre, eds.) Lecture Notes in Computer
Science, Vol. 605, Springer-Verlag, Berlin (1992), 483--496.
- John Franco, Daniel P. Friedman and Olivier Danvy. "The Scheme
programming language," in A Comparative Study of Parallel
Programming Languages: the Salishan Problems, John T. Feo
(ed.), Elsevier Science Publishers B.V., The Netherlands (1992),
297--335.
- Stanley Jefferson and Daniel P. Friedman. "A simple reflective
interpreter," Proceedings of the International Workshop on
New Models for Software Architecture '92: Reflection and
Meta-level Architecture, Tokyo, Japan, (Akinori Yonezawa
and Brian C. Smith, eds.), (November 1992), 48--55. Also
appeared in Lisp and Symbolic Computation, 1996.
- Shinn-Der Lee and Daniel P. Friedman. "Quasi-static scoping:
sharing variable bindings across multiple lexical scopes,"
Proceedings of the 20th Annual ACM Symposium on Principles
of Programming Languages, (1993), 479--492.
- Shinn-Der Lee and Daniel P. Friedman. "First-class extents,"
Lisp and Symbolic Computation 5, 4 (1993), 343--375.
- Jonathan G. Rossie and Daniel P. Friedman. "An algebraic
semantics of subobjects," Proceedings of the Tenth Annual
Conference on Object-Oriented Programming Systems, Languages and
Applications (OOPSLA '95), 187--199.
- Erik Hilsdale, J. Michael Ashley, R. Kent Dybvig, and Daniel
P. Friedman. "Compiler construction using Scheme,"
Proceedings of the Functional Programming Languages in Education
First International Symposium (FPLE), LNCS, Springer-Verlag
Vol. 1022, Nijmegen, The Netherlands (December 1995) 251--268.
- Jonathan G. Rossie, Daniel P. Friedman, and Mitchell
Wand. "Modeling subobject-based inheritance," Proceedings
European Conference on Object-Oriented Programming, Linz,
Austria, July, 1996, 246--274.
- Jonathan M. Sobel and Daniel P. Friedman. "An introduction to
reflection-oriented programming," Proceedings, Reflection
96, San Francisco, April 1996, 107--126.
- Anurag Mendhekar and Daniel P. Friedman. "An exploration of
relationships between reflective theories ," Proceedings,
Reflection 96, San Francisco, April 1996, 233--250.
- Shinn-Der Lee and Daniel P. Friedman. "Enriching the lambda
calculus with contexts: toward a theory of incremental program
construction," Proceedings International Conference on
Functional Programming, Philadelphia, May 1996, 239--250.
- Shriram Krishnamurthi, Matthias Felleisen, and Daniel P. Friedman.
"Synthesizing object-oriented and functional design to
promote re-use," Proceedings
European Conference on Object-Oriented Programming, Amsterdam,
Netherlands, July, 1998, 91--113.
- Jonathan M. Sobel and Daniel P. Friedman. "Recycling continuations,"
Proceedings International Conference on Functional Programming
, Baltimore, Sept. 1998, 251--260.
- Christian Wagenknecht and Daniel P. Friedman. "Teaching
nondeterministic and universal automata using Scheme," Computer
Science Education 8,3, (1998) 197-227 Lisse (The Netherlands), Swets
& Zeitlinger Publishers
- Steven E. Ganz, Daniel P. Friedman, and Mitchell Wand.
"Trampolined style,"
Proceedings International Conference on Functional Programming 1999
, 18--27.
- Erik Hilsdale and Daniel P. Friedman.
"Writing macros in continuation-passing style,"
Scheme Workshop, 2000.
.
- Daniel P Friedman and Amr Sabry.
"CPS in little pieces: composing partial continuations,"
Functional Programming, Vol. 12.6, November 2003, 617--622.
.
- Oleg Kiselyov, Chung-Chieh Shan, Daniel P. Friedman, and Amr Sabry.
"Functional pearl: backtracking, interleaving, and terminating
monad transformers,"
International Conference on Functional Programming, 2005.
- Robert E. Filman and Daniel P. Friedman.
"Aspect-oriented programming is quantification and obliviousness,"
Chapter 2 in book: Aspect-Oriented Software Development,
Addison-Wesley, 2005, eds: Robert E. Filman,
Tzilla Elrad, Siobhan Clarke, and Mehmet Aksit.
- William E. Byrd and Daniel P. Friedman.
"Variadic functions to variadic relations: a miniKanren perspective,"
Scheme and Functional Programming, 2006.
- William E. Byrd and Daniel P. Friedman.
"alphaKanren: a fresh name in nominal logic programming languages,"
Scheme and Functional Programming, 2007.
- Daniel P. Friedman, Abdulaziz Ghuloum, Jeremy G. Siek, and Lynn
Winebarger.
"Improving the lazy Krivine machine,"
Higher Order and Symbolic Computation, Vol. 20.3, 2007, 271--293.
.
- Oleg Kiselyov, William E. Byrd, Daniel P. Friedman and Chung-chieh Shan.
"(declarative pearl) pure, declarative, and constructive
arithmetic relations."
Proceedings of the 9th International Symposium on Functional and Logic Programming, (FLOPS 2008) Aoril
14-16, 2008 Ise, Japan ed. Jacques Garrigue and Manuel Hermenegildo,
Lecture Notes in Computer Science 4989, Springer, 2008, pp. 64-80.
.
- Joseph P.Near, William E. Byrd, and Daniel P. Friedman.
"$\alpha$leanTAP:
a declarative theorem prover for first-order classical logic."
Proceedings of Logic Programming 24th International Conference (ICLP
2008), December 15-17, 2008 Udine, Italy, ed. Maria Garcia de la
Randa and Enrico Pontelli. Lecture Notes in Computer Science 5366,
Springer, 2008, pp. 238-252.
.
- Andrew Keep, Michael D. Adams, Lindsey Kuper, William E. Byrd, and
Daniel P. Friedman. "A pattern matcher for miniKanren or how to get
into trouble with CPS macros." Workshop on Scheme and Functional
Programming, August 22-23, 2009, pp 37--45.
- William E. Byrd, Daniel P. Friedman, Joseph P. Near, and Ramana Kumar.
A shallow Scheme embedding of
bottom-avoiding streams (submitted to Higher-Order and Symbolic Computation for publication).
- Steven E. Ganz and Daniel P. Friedman
Trampolining architectures. (submitted to Higher-Order and Symbolic Computation for publication).
Non-refereed Publications
- Daniel P. Friedman "GRASPE graph processing: a LISP
extension." Master's Thesis, Computation Center Report
TNN--84, The University of Texas at Austin (1968).
- Daniel P. Friedman, David C. Dickson, John Fraser, and
Terrence W. Pratt, "GRASPE 1.5: a graph processor and its
application," ONR-CONTRACT N0014-68-a-01-51, Department of
Computer Science, University of Houston (August, 1969).
- Daniel P. Friedman "The use of the `intersection rules' in
the development of new models within GRASPE 1.5," Computer
Science Department, The University of Texas at Austin (1970).
- Daniel P. Friedman "Update of changes and new features in
GRASPE 1.5," Computer Science Department, The University of
Texas at Austin (1970).
- Daniel P. Friedman and Jonathan Slocum. "The implementor's
guide to GROPE," Department of Computer Science, The University
of Texas at Austin (1972).
- Daniel P.Friedman "GROPE: a graph processing language and
its formal definition," Ph.D. Dissertation, Technical Report
#20, Department of Computer Sciences, The University of Texas
at Austin (1973).
- Robert J. Baron, Daniel P. Friedman, Linda Shapiro, and
Jonathan Slocum. "Graph processing using GROPE/360,"
Department of Computer Science, Technical Report #73--13, The
University of Iowa (1973).
- Daniel P. Friedman and Stuart C. Shapiro. "A case for
while-until," SIGPLAN Notices (June 1974).
- Daniel P. Friedman and David S. Wise. "Unwinding structured
recursions into iterations," Computer Science Department,
Technical Report #19, Indiana University (1974).
- Daniel P. Friedman and David S. Wise. "Applicative
multiprogramming," Computer Science Department, Technical
Report #72, Indiana University (Revised: April 1979).
- Robert E. Filman and Daniel P. Friedman. "Inspiring distribution
in distributed computation." Presented at
SIGOPS-SIGPLAN Workshop on Fundamental Issues in Distributed
Computing (December 1980).
- Carol Fessenden, William D. Clinger, Daniel P. Friedman and
Christopher T. Haynes, "Scheme 311, version 4, reference
manual," Computer Science Dept. Technical Report #137,
Indiana University (1983).
- Pee Hong Chen and Daniel P. Friedman. "Prototyping data flow
by translation into Scheme," Computer Science Department,
Technical Report #147, Indiana University (August 1983).
- Daniel P. Friedman, Christopher T. Haynes, Eugene
E. Kohlbecker and Mitchell Wand, "Scheme 84 interim reference
manual," Computer Science Dept. Technical Report #153, Indiana
University (Revised: June 1985.)
- Matthias Felleisen, Daniel P. Friedman, Bruce Duba, and John
Merrill. "Beyond continuations," Computer Science Dept. Technical
Report #216, Indiana University (February 1987).
- Bruce F. Duba, Matthias Felleisen, and Daniel P. Friedman.
"Dynamic identifiers can be neat," Computer Science Dept. Technical
Report #220, Indiana University (April 1987).
- Daniel P. Friedman "Applications of continuations," (Invited
Tutorial at Principles of Programming Languages, 1988). Also,
Computer Science Dept. Technical Report #237, Indiana
University (January 1988).
- Julia Lawall and Daniel P. Friedman. "Embedding the Self
language in Scheme," BIGRE Bulletin (1990), 111--123.
- Julia Lawall and Daniel P. Friedman. "Toward leakage
containment," Computer Science Dept. Technical Report #346,
Indiana University (February 1992).
- Jonathan Sobel, Steven E. Ganz, Daniel P. Friedman, and Mitchell Wand
"A Monadic Categorical Semantics for Threads," Computer Science
Department, Indiana University (July, 1999).