Abelson, Harold., Sussman, Gerald Jay., Sussman, Julie. Structure
and Interpretation of Computer Programs. ed.2. MIT Press (Cambridge,
MA: 1996). ISBN 0-07-000484-6 (McGraw-Hill hardcover). 2000-07-18: People keep referring me to this
book, though I can't ever remember liking it very much. So I got it
anyhow. I think what bothers me is that it only uses one computer
language, Scheme, to make its points. And it does have lots of material.
Lots of material. And it addresses topics I say I care about. So I have
the book and I will make the effort.
Burge, William H. A reprogramming machine. Comm. ACM 9,
2 (February 1966), 60-66. Available on the Internet at
<https://doi.org/10.1145/365170.365174>.
2024-03-12: This paper was originally presented at a conference on
reprogramming. At the time, the concern was about the translation
of machine (i.e., assembly) language programs from one make of computer
to another. It was around that time that such an effort was
underway at the Univac Division of Sperry Rand to accomplish precisely
that. I recall a colleague working on exactly that in the Advanced
Programming group in New York City. I no longer recall what the
target machines were. It didn't get far enough to be useful, and
it is easy to construct counter-examples that would fail.
2024-08-08: In many respects, the reprogramming machine this is more like a refactoring mechanism
featuring the lambda-calculus and possibly-relevant in a reverse-engineering activity.
Burge, William H. Recursive Programming Techniques.
Addison-Wesley (Reading, MA: 1975). ISBN 0-201-14450-6.
2024-07-23: Hear are ideas about functions to explore as good ways to
represent all kinds of things. Section 1.8 to the end of Chapter 1 deals
with all of the lambda-calculus and combinatory logic. The
notation developments in Chapters 1-2 are based on [Landin1966]
and the ISWIM SECD machine. The Miser Project Frugalese notation
is inspired by my early exposure to that effort.
Content
Chapter 1 Basic Notions and Notations
Chapter 2 Program Structure
Chapter 3 Data Structures
Chapter 4 Parsing
Chapter 5 Sorting
Index to Programs
Index .
Evans, Arthur, Jr. PAL - Pedagogic Algorithmic Language: A
Reference Manual and A Primer. (MIT Department of Electrical
Engineering: February 1968). 185 pp., typescript. Available
on the Internet at <https://www.softwarepreservation.org/projects/PAL/Pal-ref-man.pdf/view>.
Wikipedia has some background at
PAL(Programming Language). Originally written in LISP, this
may be the closest to a completed ISWIM
implementation, kicked off by Peter Landin and James H. Morris, Jr.
It did not have traction at MIT, where Scheme
seemed to have become the favored pedagogic approach until recently.
Friedman, Daniel P., Felleisen, Matthias. The Little Schemer.
ed.4. MIT Press (Cambridge, MA: 1974, 1986, 1987, 1989, 1996). ISBN
0-262-56099-2 (pbk: alk. paper). See [Friedman1996]
Friedman, Daniel P., Felleisen, Matthias. The Little Schemer.
ed.4. MIT Press (Cambridge, MA: 1974, 1986, 1987, 1989, 1996). ISBN
0-262-56099-2 (pbk: alk. paper). 2000-07-18: This is the current form of
The
Little LISPer. I found the sequel, The Seasoned Schemer, at
the University Bookstore in Seattle, but have resisted. This was
something to have more hands-on familiarity with Scheme, since there are
nice free implementations. I chose Dr.Scheme because it is used in
education projects. I have already worked through Chapter 1 and
have copious notes on how I wouldn't do it that way. I am following the
guidelines of the book. I am looking at their typographical
conventions to help me choose mine, but not sure how it will go.
Landin, P.J. The mechanical evaluation of expressions.
Computer Journal6, 4 (January 1964), 308-320.
This is Landin's initial publication on applicative operations with connection to the
λ-calculus. This is what was passed around the Sperry Univac office to acquaint us with
the notions of functional programming and how they might be introduced in
programming languages and practice.
Landin, P.J. The Next 700 Programming Languages.
Comm. ACM9, 3 (March 1966), 157-164.
Following
[Landin1964], this paper became Landin's suggestion that the direction for
introduction of programming languages should be as ones that are, in some
respect, sugarings of an underlying functional system, namely a proposed ISWIM
(If you See What I Mean) programming-language system. At the paper's
presentation at the ACM Programming Languages and Pragmatics Conference in 1965,
discussion seemed to bikeshed on the use of indentation in the ISWIM
illustrations, something now made commonplace in Python. This paper is
enduring as a demonstration of applicative programming without explicit use of
λ-expressions, although the procedures for functions are first-class entities.
McCarthy, John. Recursive functions of symbolic expressions and
their computation by machine, Part I. Comm. ACM3, 4
(April 1960), 184-195. doi>10.1145/367177.367199 available at <https://dl.acm.org/citation.cfm?doid=367177.367199>.
Part II did not appear and it was, perhaps, unnecessary.
Okasaki, Chris. Purely Functional Data Structures. Cambridge
University Press (Cambridge: 1998). ISBN 0-521-66350-4 pbk. Addresses the problem of creating interesting
data structures in a purely-functional setting. 2000-07-18: Since the Miser Engine produces
purely-functional results using an eager evaluator (a distinction I got
from browsing this book), something to look into. The examples and
worked definitions are all in ML, so then I grabbed [Paulson1996]
when I ran across it.
Paulson, Lawrence C. ML for the Working Programmer. Cambridge
University Press (Cambridge: 1991, 1996). ISBN 0-521-56543-X pbk. 2000-07-18: Because the [Okasaki1998]
programs are all provided in ML, this seemed like a good idea. I am yet
to find out what "ML" stands for, but I gave up my thin little
specifications a move or two ago. Now I need to find a free
implementation of Standard ML. 2024-08-08:
Digging into the combinators, λ-calculus, and representation of other
types as interpretations of λ-expressions occurs in Chapter 9, Writing
Interpreters for the λ-calculus, starting in section 9.5.
Révész, György E. Lambda-Calculus, Combinators and Functional
Programming. Cambridge University Press (Cambridge, 1988). ISBN
0-521-34589-8.
There are some notational difficulties that
need to be carefully navigated in this material. The use of (f)x in
place of conventional f(x) and applicative (f x) requires a change in
mind-set and/or some serious rewriting to an alternative form (e.g.,
Frugalese). It is a quaint similarity that application associates
to the right (as in oFrugal) but parentheses can alter that. These
matters are not of great moment until one attempts to translate the
forms in this book and also appreciate whether evaluations are
considered strict or not. There are interesting elements in this
book, and the section on List Manipulation reveals a gold mine.
[2025-09-05] Although this
material focuses on theoretical aspects of the λ-calculus, I have
persuaded myself that this is more about functional programming. I
don't think that all of the λ-calculus (and combinatory logic) are
sufficient as models of computations, something the Miser Project has
taught me. Also, while this book is taken as a contribution to
Theoretical Computer Science, I think the reveal is in the
statement (p.viii), "lambda-calculus is treated here as a functional
language implemented by software in a conventional computer."
While it was thought to be a model for concrete computing machines,
those visions have not come to pass, and I will avoid λ-calculus where
the key facility is one of λ-abstraction and where combinators are manifest
via script-constructing operations. 2000-07-18: I have book-marked some material in
here on the idea of extensionally-equal (Definition 1.1, which comes up
in the theory for CL) and the nice explanation of the set-theoretic
model of functions and the procedural view of functions, considered the
older model. Chapter 3 is about combinators and constant
symbols and ways people have dealt with placeholders. There are also representations of arithmetic
and logic (Boolean values) in CL, and the treatment of recursion is
something I need to understand better, especially around finding
fixed-points. There are additional things here, that can be used in
building implementations and applying Miser engines. For example, list
processing, handling infinite-lists, stuff like that. (I don't propose
to go down that road very far, but I have my eye out for useful
definitions for list-processing primitives, string manipulation, and
other things.) The Church-Rosser theorem is treated in here, also. And a
treatment of FP, the John Backus approach to functional programming. I want to be very careful about how true and
false is represented in the Miser Engine. In one respect, true and false
can be represented any way that we want. But the primitive operation for
equality has to produce some sort of result and it, along with an idiom
for conditional evaluation, will create a truth representation. So I
want to come up with a comparison result that fits into this and is both
useful and revealing. Content Preface 1. Introduction 2. Type-Free Lambda Calculus 3. Combinators and Constant Symbols 4. List Manipulation in Lambda-Calculus 5. Rule-Based Semantics of λ-expressions 6. Outlines of a Reduction Machine 7. Towards a Parallel Graph-Reduction Appendix A. A Proof of the Church-Rosser
Theorem Appendix B. Introduction to Typed
λ-Calculus Bibliographical notes References
Reynolds, John C. Theories of Programming Languages.
Cambridge University Press (Cambridge: 1998). ISBN 0-521-59414-6
hardback. 2000-07-18: I bought this as an antidote to [Abelson1996].
There is far more than I need, but it is also covers some concepts that
I can refer to.
Abelson, Harold., Sussman, Gerald Jay., Sussman, Julie. Structure
and Interpretation of Computer Programs. ed.2. MIT Press (Cambridge,
MA: 1996). ISBN 0-07-000484-6 (McGraw-Hill hardcover). See [Abelson1996]
Abelson, Harold., Sussman, Gerald Jay., Sussman, Julie. Structure
and Interpretation of Computer Programs. ed.2. MIT Press (Cambridge,
MA: 1996). ISBN 0-07-000484-6 (McGraw-Hill hardcover). See [Abelson1996]
0.0.2 2023-09-11T16:56Z Repurposed to orcmid.github.io
Along with updating to the current construction structure styles and
format, this page is adjusted for eventual transposition to Orcmid's Lair
for centralization of all bibliographies. Fragment identifires are
corrected to have valid XML NCName syntax.
0.00 2000-07-18-17:03 Setup and Build Initial
Bibliography (orcmid)
Provide bibliography page for use under the Miser Project