Abelson, Harold, Andrew Berlin, Jacob Katzenelson,
William McAllister,
Guillermo Rozas, Gerald Jay Sussman, and Jack Wisdom. 1992. The
Supercomputer Toolkit: A general framework for special-purpose
computing. International Journal of High-Speed Electronics
3(3):337–361.
Allen, John. 1978. Anatomy of Lisp. New York: McGraw-Hill.
Appel, Andrew W. 1987. Garbage collection can be faster than stack
allocation. Information Processing Letters 25(4):275–279.Backus, John. 1978. Can programming be liberated from the von
Neumann style? Communications of the ACM 21(8):613–641.Baker, Henry G., Jr. 1978. List processing in real time on a serial
computer. Communications of the ACM 21(4):280–293.Batali, John, Neil Mayle, Howard Shrobe, Gerald Jay Sussman, and
Daniel Weise. 1982. The Scheme-81 architecture—System and chip.
In Proceedings of the MIT Conference on Advanced Research in
VLSI, edited by Paul Penfield, Jr. Dedham, MA: Artech House.Borning, Alan. 1977. ThingLab—An object-oriented system for
building simulations using constraints. In Proceedings of the 5th
International Joint Conference on Artificial Intelligence.Borodin, Alan, and Ian Munro. 1975. The Computational
Complexity of Algebraic and Numeric Problems. New York: American
Elsevier.Chaitin, Gregory J. 1975. Randomness and mathematical proof. Scientific American 232(5):47–52.Church, Alonzo. 1941. The Calculi of Lambda-Conversion.
Princeton, N.J.: Princeton University Press.Clark, Keith L. 1978. Negation as failure. In Logic and Data
Bases. New York: Plenum Press, pp. 293–322.Clinger, William. 1982. Nondeterministic call by need is neither
lazy nor by name. In Proceedings of the ACM Symposium on Lisp and
Functional Programming, pp. 226–234.Colmerauer A., H. Kanoui, R. Pasero, and P. Roussel. 1973. Un système
de communication homme-machine en français. Technical report,
Groupe d'Intelligence Artificielle, Université d'Aix-Marseille II,
Luminy.Cormen, Thomas H., Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. 2022. Introduction to Algorithms. 4th edition. Cambridge, MA: MIT Press.Crockford, Douglas. 2008. JavaScript: The Good Parts.
Sebastopol, CA: O'Reilly Media.Darlington, John, Peter Henderson, and David Turner. 1982. Functional Programming and Its Applications. New York: Cambridge
University Press.Dijkstra, Edsger W. 1968a. The structure of the THE
multiprogramming system. Communications of the ACM
11(5):341–346.Dijkstra, Edsger W. 1968b. Cooperating sequential processes. In Programming Languages, edited by F. Genuys. New York: Academic Press, pp.
43–112.Dinesman, Howard P. 1968. Superior Mathematical Puzzles. New
York: Simon and Schuster.de Kleer, Johan, Jon Doyle, Guy Steele, and Gerald J. Sussman. 1977.
AMORD: Explicit control of reasoning. In Proceedings of the ACM
Symposium on Artificial Intelligence and Programming Languages, pp.
116–125.Doyle, Jon. 1979. A truth maintenance system. Artificial
Intelligence 12:231–272.ECMA. 1997. ECMAScript: A general purpose,
cross-platform programming
language. 1st edition, edited by Guy L. Steele Jr. Ecma International.ECMA. 2015. ECMAScript: A general purpose, cross-platform programming
language. 6th edition, edited by Allen Wirfs-Brock. Ecma International.ECMA. 2020. ECMAScript: A general purpose, cross-platform programming
language. 11th edition, edited by Jordan Harband. Ecma International.Edwards, A. W. F. 2019. Pascal's Arithmetical Triangle. Mineola, New York: Dover Publications.Feeley, Marc. 1986. Deux approches à l'implantation du
language Scheme. Masters thesis, Université de Montréal.Feeley, Marc and Guy Lapalme. 1987. Using closures for code
generation. Journal of Computer Languages 12(1):47–66.Feigenbaum, Edward, and Howard Shrobe. 1993. The Japanese National
Fifth Generation Project: Introduction, survey, and evaluation. In Future Generation Computer Systems, vol. 9, pp. 105–117.Feller, William. 1957. An Introduction to Probability Theory
and Its Applications, volume 1. New York: John Wiley & Sons.Fenichel, R., and J. Yochelson. 1969. A Lisp garbage collector for
virtual memory computer systems. Communications of the ACM
12(11):611–612.Floyd, Robert. 1967. Nondeterministic algorithms. JACM, 14(4):636–644.Forbus, Kenneth D., and Johan de Kleer. 1993. Building Problem
Solvers. Cambridge, MA: MIT Press.Friedman, Daniel P., and David S. Wise. 1976. CONS should not
evaluate its arguments. In Automata, Languages, and Programming:
Third International Colloquium, edited by S. Michaelson and R.
Milner, pp. 257–284.Friedman, Daniel P., Mitchell Wand, and Christopher T. Haynes. 1992.
Essentials of Programming Languages. Cambridge, MA: MIT
Press/McGraw-Hill.Gabriel, Richard P. 1988. The Why of Y. Lisp Pointers
2(2):15–25.Goldberg, Adele, and David Robson. 1983. Smalltalk-80: The
Language and Its Implementation. Reading, MA: Addison-Wesley.Gordon, Michael, Robin Milner, and Christopher Wadsworth. 1979. Edinburgh LCF. Lecture Notes in Computer Science, volume 78. New
York: Springer-Verlag.Gray, Jim, and Andreas Reuter. 1993. Transaction Processing:
Concepts and Models. San Mateo, CA: Morgan-Kaufman.Green, Cordell. 1969. Application of theorem proving to problem
solving. In Proceedings of the International Joint Conference on
Artificial Intelligence, pp. 219–240.Green, Cordell, and Bertram Raphael. 1968. The use of
theorem-proving techniques in question-answering systems. In Proceedings of the ACM National Conference, pp. 169–181.Guttag, John V. 1977. Abstract data types and the development of
data structures. Communications of the ACM 20(6):397–404.Hamming, Richard W. 1980. Coding and Information Theory.
Englewood Cliffs, N.J.: Prentice-Hall.Hanson, Christopher P. 1990. Efficient stack allocation for
tail-recursive languages. In Proceedings of ACM Conference on
Lisp and Functional Programming, pp. 106–118.Hanson, Christopher P. 1991. A syntactic closures macro facility.
Lisp Pointers, 4(4):9–16.Hardy, Godfrey H. 1921. Srinivasa Ramanujan. Proceedings of
the London Mathematical Society XIX(2).Hardy, Godfrey H., and E. M. Wright. 1960. An Introduction to
the Theory of Numbers. 4th edition. New York: Oxford University
Press.Havender, J. 1968. Avoiding deadlocks in multi-tasking systems. IBM Systems Journal 7(2):74–84.Henderson, Peter. 1980. Functional Programming: Application and
Implementation. Englewood Cliffs, N.J.: Prentice-Hall.Henderson. Peter. 1982. Functional Geometry. In Conference Record
of the 1982 ACM Symposium on Lisp and Functional Programming,
pp. 179–187.Hewitt, Carl E. 1969. PLANNER: A language for proving theorems in
robots. In Proceedings of the International Joint Conference on
Artificial Intelligence, pp. 295–301.Hewitt, Carl E. 1977. Viewing control structures as patterns of
passing messages. Journal of Artificial Intelligence
8(3):323–364.Hoare, C. A. R. 1972. Proof of correctness of data representations.
Acta Informatica 1(1):271–281.Hodges, Andrew. 1983. Alan Turing: The Enigma. New York: Simon
and Schuster.Hofstadter, Douglas R. 1979. Gödel, Escher, Bach: An Eternal
Golden Braid. New York: Basic Books.Hughes, R. J. M. 1990. Why functional programming matters. In Research Topics in Functional Programming, edited by David Turner.
Reading, MA: Addison-Wesley, pp. 17–42.IEEE Std 1178-1990. 1990. IEEE Standard for the Scheme
Programming Language.Ingerman, Peter, Edgar Irons, Kirk Sattley, and Wallace Feurzeig;
assisted by M. Lind, Herbert Kanner, and Robert Floyd. 1960. THUNKS:
A way of compiling procedure statements, with some comments on
procedure declarations. Unpublished manuscript. (Also, private
communication from Wallace Feurzeig.)Jaffar, Joxan, and Peter J. Stuckey. 1986. Semantics of infinite tree
logic programming. Theoretical Computer Science 46:141–158.Kaldewaij, Anne. 1990. Programming: The Derivation of
Algorithms. New York: Prentice-Hall.Knuth, Donald E. 1997a. Fundamental Algorithms. Volume 1 of
The Art of Computer Programming. 3rd edition. Reading, MA:
Addison-Wesley.Knuth, Donald E. 1997b. Seminumerical Algorithms. Volume 2 of
The Art of Computer Programming. 3rd edition. Reading, MA:
Addison-Wesley.Konopasek, Milos, and Sundaresan Jayaraman. 1984. The TK!Solver
Book: A Guide to Problem-Solving in Science, Engineering, Business,
and Education. Berkeley, CA: Osborne/McGraw-Hill.Kowalski, Robert. 1973. Predicate logic as a programming language.
Technical report 70, Department of Computational Logic, School of
Artificial Intelligence, University of Edinburgh.Kowalski, Robert. 1979. Logic for Problem Solving. New York:
North-Holland.Lamport, Leslie. 1978. Time, clocks, and the ordering of events in a
distributed system. Communications of the ACM 21(7):558–565.Lampson, Butler, J. J. Horning, R. London, J. G. Mitchell, and G. K.
Popek. 1981. Report on the programming language Euclid. Technical
report, Computer Systems Research Group, University of Toronto.Landin, Peter. 1965. A correspondence between Algol 60 and Church's
lambda notation: Part I. Communications of the ACM
8(2):89–101.Lieberman, Henry, and Carl E. Hewitt. 1983. A real-time garbage
collector based on the lifetimes of objects. Communications of
the ACM 26(6):419–429.Liskov, Barbara H., and Stephen N. Zilles. 1975. Specification
techniques for data abstractions. IEEE Transactions on Software
Engineering 1(1):7–19.McAllester, David Allen. 1978. A three-valued truth-maintenance
system. Memo 473, MIT Artificial Intelligence Laboratory.McAllester, David Allen. 1980. An outlook on truth maintenance.
Memo 551, MIT Artificial Intelligence Laboratory.McCarthy, John. 1967. A basis for a mathematical theory of
computation. In Computer Programing and Formal Systems, edited
by P. Braffort and D. Hirschberg. North-Holland, pp. 33–70.McDermott, Drew, and Gerald Jay Sussman. 1972. Conniver reference
manual. Memo 259, MIT Artificial Intelligence Laboratory.Miller, Gary L. 1976. Riemann's Hypothesis and tests for primality.
Journal of Computer and System Sciences 13(3):300–317.Miller, James S., and Guillermo J. Rozas. 1994. Garbage collection is
fast, but a stack is faster. Memo 1462, MIT Artificial Intelligence
Laboratory.Moon, David. 1978. MacLisp reference manual, Version 0. Technical
report, MIT Laboratory for Computer Science.Morris, J. H., Eric Schmidt, and Philip Wadler. 1980. Experience
with an applicative string processing language. In Proceedings
of the 7th Annual ACM SIGACT/SIGPLAN Symposium on the Principles of
Programming Languages.Phillips, Hubert. 1934. The Sphinx Problem Book. London: Faber
and Faber.Phillips, Hubert. 1961. My Best Puzzles in Logic and Reasoning.
New York: Dover Publications.Rabin, Michael O. 1980. Probabilistic algorithm for testing primality.
Journal of Number Theory 12:128–138.Raymond, Eric. 1996. The New Hacker's Dictionary. 3rd edition.
Cambridge, MA: MIT Press.Raynal, Michel. 1986. Algorithms for Mutual Exclusion.
Cambridge, MA: MIT Press.Rees, Jonathan A., and Norman I. Adams IV. 1982. T: A dialect of Lisp
or, lambda: The ultimate software tool. In Conference Record of
the 1982 ACM Symposium on Lisp and Functional Programming, pp.
114–122.Rivest, Ronald L., Adi Shamir, and Leonard M. Adleman. 1978. A method for
obtaining digital signatures and public-key cryptosystems. Communications
of the ACM, 21(2):120–126.Robinson, J. A. 1965. A machine-oriented logic based on the
resolution principle. Journal of the ACM 12(1):23.Robinson, J. A. 1983. Logic programming—Past, present, and future.
New Generation Computing 1:107–124.Sagade, Y. 2015. SICP exercise 1.14Spafford, Eugene H. 1989. The Internet Worm: Crisis and aftermath.
Communications of the ACM 32(6):678–688.Steele, Guy Lewis, Jr. 1977. Debunking the expensive procedure
call myth. In Proceedings of the National Conference of the
ACM, pp. 153–162.Steele, Guy Lewis, Jr., and Gerald Jay Sussman. 1975. Scheme: An
interpreter for the extended lambda calculus. Memo 349, MIT
Artificial Intelligence Laboratory.Steele, Guy Lewis, Jr., Donald R. Woods, Raphael A. Finkel, Mark R.
Crispin, Richard M. Stallman, and Geoffrey S. Goodfellow. 1983. The Hacker's Dictionary. New York: Harper
& Row.Stoy, Joseph E. 1977. Denotational Semantics. Cambridge, MA:
MIT Press.Sussman, Gerald Jay, and Richard M. Stallman. 1975. Heuristic
techniques in computer-aided circuit analysis. IEEE Transactions
on Circuits and Systems CAS-22(11):857–865.Sussman, Gerald Jay, and Guy Lewis Steele Jr. 1980. Constraints—A
language for expressing almost-hierarchical descriptions. AI
Journal 14:1–39.Sussman, Gerald Jay, and Jack Wisdom. 1992. Chaotic evolution of the
solar system. Science 257:256–262.Sussman, Gerald Jay, Terry Winograd, and Eugene Charniak. 1971.
Microplanner reference manual. Memo 203A, MIT Artificial Intelligence
Laboratory.Sutherland, Ivan E. 1963. SKETCHPAD: A man-machine graphical
communication system. Technical report 296, MIT Lincoln Laboratory.Thatcher, James W., Eric G. Wagner, and Jesse B. Wright. 1978.
Data type specification: Parameterization and the power of
specification techniques. In Conference Record of the Tenth Annual ACM
Symposium on Theory of Computing, pp. 119–132.Turner, David. 1981. The future of applicative languages. In Proceedings of the 3rd European Conference on Informatics, Lecture
Notes in Computer Science, volume 123. New York: Springer-Verlag, pp.
334–348.Wand, Mitchell. 1980. Continuation-based program transformation
strategies. Journal of the ACM 27(1):164–180.Waters, Richard C. 1979. A method for analyzing loop programs. IEEE Transactions on Software Engineering 5(3):237–247.Winston, Patrick. 1992. Artificial Intelligence. 3rd edition.
Reading, MA: Addison-Wesley.Zabih, Ramin, David McAllester, and David Chapman. 1987.
Non-deterministic Lisp with dependency-directed backtracking.
AAAI-87, pp. 59–64.Zippel, Richard. 1979. Probabilistic algorithms for sparse
polynomials. Ph.D. dissertation, Department of Electrical Engineering
and Computer Science, MIT.Zippel, Richard. 1993. Effective Polynomial Computation.
Boston, MA: Kluwer Academic Publishers.