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