Publications
Books
- Friedman, Daniel P. The Little LISPer, Science
Research Associates, Inc. (1974).
- Filman, Robert E. and Daniel P. Friedman. Coordinated
Computing: Tools and Techniques for Distributed
Software, McGraw-Hill (1984); Translated into
Japanese (1986).
- Friedman, Daniel P. and Matthias Felleisen. The Little
LISPer: Second Edition, Science Research Associates,
Inc. (1986); Third Edition, Macmillan, (1989).
- Friedman, Daniel P. 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).
- Springer, George and Daniel P. Friedman. Scheme and the
Art of Programming, Jointly published by M.I.T. Press &
McGraw-Hill (1989). Second Printing (1991).
- Springer, George and Daniel P. Friedman. Scheme and the
Art of Programming, Answer Book, M.I.T. Press &
McGraw-Hill (1990).
- Friedman, Daniel P., Mitchell Wand and Christopher
T. Haynes. Essentials of Programming Languages,
M.I.T. Press & McGraw-Hill (1992).
- Friedman, Daniel P. The Seasoned Schemer,
M.I.T. Press (1996).
- Friedman, Daniel P. The Little Schemer: Fourth
Edition, M.I.T. Press (1996).
- Felleisen, Matthias and Daniel P. Friedman, The Little MLer
, M.I.T. Press (1998).
- Felleisen, Matthias and Daniel P. Friedman, A Little Java,
A Few Patterns , M.I.T. Press (1998). (Also in Japanese)
- Friedman, Daniel P., Mitchell Wand and Christopher
T. Haynes. Essentials of Programming Languages
Second Edition , M.I.T. Press (2001).
- Felleisen, Matthias and Daniel P. Friedman, A Little Java,
A Few Patterns , M.I.T. Press (1998). (Also in Japanese)
- Friedman, Daniel P., William E. Byrd, and Oleg Kiselyov, The
Reasoned Schemer,, M.I.T. Press (2005).
Refereed Publications
- Pratt, Terrence W. and Daniel P. Friedman. ``A language
extension for graph processing and its formal semantics,''
Comm. ACM 14, 7 (July 1971), 460--467.
- Wise, David S., Daniel P. Friedman, Stuart C. Shapiro, and
Mitchell Wand. ``Boolean-valued loops,'' BIT 15, 4
(December 1975), 431--451.
- Friedman, Daniel P. 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.
- Friedman, Daniel P., David S. Wise and Mitchell Wand.
``Recursive programming through table look-up,'' Proc. ACM
Symposium on Symbolic and Algebraic Computation (1976),
85--89.
- Friedman, Daniel P. and David S. Wise. ``Garbage collecting a
heap which includes a scatter table,'' Information
Processing Letters 5, 6 (December 1976), 161--164.
- Friedman, Daniel P. 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.
- Friedman, Daniel P. and David S. Wise. ``An environment for
multiple-valued recursive procedures,'' Programmation,
B. Robinet (ed.), Dunod Informatique (Paris, 1977), 182--200.
- Friedman, Daniel P. and David S. Wise. ``Aspects of applicative
programming for file systems,'' Proceedings 1977 ACM
Conference on Language Design for Reliable Software,
(1977), 41--55.
- Lowrance, John D. 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.)
- Wise, David S. and Daniel P. Friedman. ``The one bit reference
count,'' BIT 17, 3 (September 1977), 351--359.
- Friedman, Daniel P. and David S. Wise. ``Functional
combination,'' Computer Languages 3, 1 (January 1978),
31--35.
- Friedman, Daniel P. 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.
- Friedman, Daniel P. and David S. Wise. ``Unbounded
computational structures,'' Software-Practice and
Experience 8, 4 (August 1978), 407--416.
- Friedman, Daniel P. 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.
- Friedman, Daniel P. and David S. Wise. ``A note on conditional
expressions,'' Comm. ACM 2l, 11 (November 1978), 931--933.
- Wand, Mitchell and Daniel P. Friedman. ``Compiling lambda
expressions using continuations and factorizations,''
Computer Languages 3, (1978), 241--263.
- Friedman, Daniel P. and David S. Wise. ``Reference counting can
manage the circular environments of mutual recursion,''
Information Processing Letters 8, 1 (January 1979), 41--44.
- Friedman, Daniel P. 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.
- Friedman, Daniel P. and David S. Wise. ``An indeterminate
constructor for applicative programming,'' Record 7th
Principles of Programming Languages (January 1980),
245--250.
- Salter, Richard M., Terrence J. Brennan, and Daniel
P. Friedman. ``CONCUR: A language for continuous, concurrent
processes,'' Computer Languages 5 (1980), 163--189.
- Friedman, Daniel P. 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).
- Filman, Robert E. 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.
- Friedman, Daniel P., 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.
- Friedman, Daniel P. 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.
- Friedman, Daniel P. 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.
- Clinger, William D., 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.
- Felleisen, Matthias and Daniel P. Friedman. ``A closer look at
export and import statements,'' Computer Languages 11,
1 (1986), 29--37.
- Felleisen, Matthias, Daniel P. Friedman, Eugene E. Kohlbecker,
and Bruce Duba. ``Reasoning with continuations,'' Symposium
on Logic in Computer Science, Cambridge, MA (June
1986), 131--141.
- Felleisen, Matthias 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.
- Haynes, Christopher T., 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.
- Kohlbecker, Eugene E., Daniel P. Friedman, Matthias Felleisen,
and Bruce Duba. ``Hygienic macro expansion,'' Proceedings
1986 ACM Symposium on LISP and Functional Programming
(August 1986), 151--161 .
- Felleisen, Matthias 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.
- Felleisen, Matthias 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.
- Felleisen, Matthias, Daniel P. Friedman, Eugene Kohlbecker, and
Bruce Duba. ``A syntactic theory of sequential control,''
Theoretical Computer Science 52 (1987), 205--237.
- Haynes, Christopher T. 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.
- Haynes, Christopher T. and Daniel P. Friedman. ``Embedding
continuations in procedural objects,'' ACM Transactions on
Programming Languages and Systems 9, 4 (October 1987),
582--598.
- Dybvig, R. Kent, 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.
- Felleisen, Matthias, 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.
- Wand, Mitchell 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.
- Franco, John and Daniel P. Friedman. ``Creating efficient
programs by exchanging data for procedures,''
Computer Languages 14, 1 (1989), 11--23.
- Felleisen, Matthias. 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.
- Franco, John and Daniel P. Friedman. ``Towards a facility for
lexically scoped, dynamic mutual recursion in Scheme,''
Computer Languages 15, 1 (1990), 55--64.
- Franco , John, Daniel P. Friedman, and Steven
D. Johnson. ``Multi-way streams in Scheme,'' Computer
Languages 15, 2 (1990), 109--125.
- Jefferson, Stanley, 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.
- Freeman, Eric T. 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.
- Franco, John, 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.
- Jefferson, Stanley 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.
- Lee, Shinn-Der 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.
- Lee, Shinn-Der and Daniel P. Friedman. ``First-class extents,''
Lisp and Symbolic Computation 5, 4 (1993), 343--375.
- Rossie, Jonathan G. 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.
- Hilsdale, Erik, 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.
- Rossie, Jonathan G., Daniel P. Friedman, and Mitchell
Wand. ``Modeling subobject-based inheritance,'' Proceedings
European Conference on Object-Oriented Programming, Linz,
Austria, July, 1996, 246--274.
- Sobel, Jonathan M. and Daniel P. Friedman. ``An introduction to
reflection-oriented programming,'' Proceedings, Reflection
96, San Francisco, April 1996, 107--126.
- Mendhekar, Anurag and Daniel P. Friedman. ``An exploration of
relationships between reflective theories ,'' Proceedings,
Reflection 96, San Francisco, April 1996, 233--250.
- Lee, Shinn-Der 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.
- Krishnamurthi, Shriram, Felleisen, Matthias 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.
- Sobel, Jonathan and Daniel P. Friedman. ``Recycling Continuations,''
Proceedings International Conference on Functional Programming
, Baltimore, Sept. 1998, 251--260.
- Wagenknecht, Christian 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
- Ganz, Steven E. Friedman, Daniel P., Mitchell Wand.
``Trampolined Style,''
Proceedings International Conference on Functional Programming
, Paris, Sept. 1999, 18--27.
- Hilsdale, Erik and Daniel P. Friedman.
``Writing Macros in Continuation-Passing Style,''
Scheme Workshop
, Montreal, Sept. 2000.
Non-refereed Publications
- Friedman, Daniel P. ``GRASPE graph processing: a LISP
extension.'' Master's Thesis, Computation Center Report
TNN--84, The University of Texas at Austin (1968).
- Friedman, Daniel P., 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).
- Friedman, Daniel P. ``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).
- Friedman, Daniel P. ``Update of changes and new features in
GRASPE 1.5,'' Computer Science Department, The University of
Texas at Austin (1970).
- Friedman, Daniel P. and Jonathan Slocum. ``The implementor's
guide to GROPE,'' Department of Computer Science, The University
of Texas at Austin (1972).
- Friedman, Daniel P. ``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).
- Baron, Robert J., 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).
- Friedman, Daniel P. and Stuart C. Shapiro. ``A case for
while-until,'' SIGPLAN Notices (June 1974).
- Friedman, Daniel P. and David S. Wise. ``Unwinding structured
recursions into iterations,'' Computer Science Department,
Technical Report #19, Indiana University (1974).
- Friedman, Daniel P. and David S. Wise. ``Applicative
multiprogramming,'' Computer Science Department, Technical
Report #72, Indiana University (Revised: April 1979).
- Filman, R. E. and Daniel P. Friedman. ``Inspiring distribution
in distributed computation.'' Presented at
SIGOPS-SIGPLAN Workshop on Fundamental Issues in Distributed
Computing (December 1980).
- Fessenden, Carol, 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).
- Chen, Pee Hong. and Daniel P. Friedman. ``Prototyping data flow
by translation into Scheme,'' Computer Science Department,
Technical Report #147, Indiana University (August 1983).
- Friedman, Daniel P., 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.)
- Felleisen, Matthias, Daniel P. Friedman, Bruce Duba, and John
Merrill. ``Beyond continuations,'' Computer Science Dept. Technical
Report #216, Indiana University (February 1987).
- Duba, Bruce F., Matthias Felleisen, and Daniel P. Friedman.
``Dynamic identifiers can be neat,'' Computer Science Dept. Technical
Report #220, Indiana University (April 1987).
- Friedman, Daniel P. ``Applications of continuations,'' (Invited
Tutorial at Principles of Programming Languages, 1988). Also,
Computer Science Dept. Technical Report #237, Indiana
University (January 1988).
- Lawall, Julia and Daniel P. Friedman. ``Embedding the Self
language in Scheme,'' BIGRE Bulletin (1990), 111--123.
- Lawall, Julia and Daniel P. Friedman. ``Toward leakage
containment,'' Computer Science Dept. Technical Report #346,
Indiana University (February 1992).