Structure and Interpretation of Computer Programs is a
textbook originally published in 1984 about general computer
programming concepts
from MIT Press written by Massachusetts Institute of Technology
professors. It is designed to show the web's potential for innovative
support for textbook users.
It is regarded as one of the bibles of the LISP/Scheme
world.
In teaching the material covered, the authors use a
dialect of the programming language Lisp. The book does not seek to
formally teach the language, but to use it. The language is not
difficult to learn, as there are very few ways of forming compound
expressions, and almost no syntactic structure.
Topics covered:
Building Abstractions with Procedures -
concentrates on computational processes and on the
role of procedures in program design. This chapter shows how to use
primitive
data (numbers) and primitive operations (arithmetic operations), how to
combine procedures to form compound procedures through composition,
conditionals, and the use of parameters, and how to abstract
procedures by using define. A procedure can be
regarded as a pattern for the local evolution of a process,
and classified, reasoned about, and performed simple
algorithmic analyses
of some common patterns for processes as embodied in procedures. See
how higher-order procedures enhance the power of our
language by enabling us to manipulate, and thereby to reason in terms
of, general methods of computation.
Building Abstractions with Data - looks at the means
it provides for building abstractions
by combining data objects to form compound data.
Modularity, Objects, and State -
organizational principles that can guide us in formulating the
overall design of a program
Metalinguistic Abstraction - this plays an
important role in all branches of engineering
design. It is particularly important to computer programming, because
in programming not only can we formulate new languages but we can also
implement these languages by constructing evaluators
Computing with Register Machines - describes
processes in terms of the step-by-step
operation of a traditional computer. Such a computer, or register
machine, sequentially executes instructions
that manipulate the contents of a fixed set of storage elements
calledregisters. A typical register-machine instruction applies a
primitive operation to the contents of some registers and assigns the
result to another register
Structure and Interpretation of Computer
Programs is licensed under a Creative Commons
Attribution-ShareAlike 3.0 Unported License.
8. Lisp Lore - A Guide to Programming the Lisp Machine
The aim of Lisp Lore - A Guide to Programming the Lisp
Machine is to
provide an introduction to several representative areas of
interest, including enough information to show how easy it is to build
useful programs on the lisp machine.
After studying the
book, students should have a clear idea of what facilities exist on the
machine to make effective use of the 11-volume set
of documentation, instead of being overwhelmed by it.
Chapters on:
Getting Started on the Lisp Machine
What's a Flavor?
More on Navigating the Lisp Machine
Flow of Control
The Graph Example
Streams and Files
The Tree Example
Random Useful Topics: Resources & Systems
Signaling and Handling Conditions
The Moving Icons Example
More Advanced Use of the Editor
A Quick Look at "The Network"
9. Successful Lisp: How to Understand and Use Common Lisp
Successful Lisp: How to Understand and Use Common Lisp is
written with the professional programmer in mind. Using a hands on
approach it introduces the ANSI Common Lisp standard. Practical
examples of working code provide an in depth view of Common Lisp
programming paradigms. David B. Lamkins explains why this programming
language is by far the most powerful industrial strength tool available
for advanced software development.
Topics covered include:
Provides an overview of Common Lisp for the working
programmer
Introduces key concepts in an easy-to-read format
Describes format, typical use, and possible drawbacks
of all important Lisp constructs
Provides practical advice for the construction of
Common Lisp programs
Shows examples of how Common Lisp is best used
Illustrates and compares features of the most popular
Common Lisp systems on desktop computers
Includes discussion and examples of advanced
constructs for iteration, error handling, object oriented
programming, graphical user interfaces, and threading
Supplements Common Lisp reference books and manuals
with useful hands-on techniques
Shows how to find what you need among the thousands
of documented and undocumented functions and variables in a typical
Common Lisp system