Bob La Quey wrote:
Not quite on topic but I think it relevant.
About 15 years ago I was down in the Philippines visiting
my wife's family. Feeling a little bored I went into
the nearest large town San Fernando, Pampanga. This was
a couple of years after Mt. Pinatubo (a volcano) had blown
up and large flows of volcanic ash were flooding the town.
I found a book store and walked though the flooded ground floor then
up some stairs where I found a small technical section. There I
discovered a copy of a truly wonderful book, "An Introduction to
Elementary Computer and Compiler Design" by Dennis R. Steele
published by Elsiver North-Holland, Inc. in 1978.
The book including appendices and index is only 151 pages long
but it describes all of the hardware built up from simple
gates of simple computer. The book assumes _no_ previous knowledge
of logic or computing. So it begins by introducing boolean logic.
A few simple gates are discussed and a flip flop is constructed.
The author then proceeds to introduce a computer that has
8 (three bits) instructions and 64 words of memory (i.e.
six bits) Memory words are 9 bits long, each containing
one instruction (three bits) and one address (six bits).
This takes all of 39 pages.
Having hardware, the author defines a simple high level
language PL/M. This takes 7 pages and results in 12 lines
of Backus-Naur form (BNF.)
Steele then implements a compiler for this language,
introducing regular grammars and postfix notation among
other things. This eats up almost another 100 pages.
That's it. No kidding!
It is really kool.
The book puts all of the elements of hardware and
software in one incredibly succinct and complete package.
I consider it perhaps the best single introduction to
computers that I have ever encountered aside from a few
days discussions with Chuck Moore ;-) I think it deserves
to be far better known and used as a first course for
anyone who would like to know what a computing system is.
The book has inspired a web site, a XYLINX implementation
with VHDL source code and also a simulator. See
http://www.simpledigitalcomputer.com/
BobLQ
In the Hebrew university of Israel, there is a course called "From NAND
to Tetris" - where they do something similar.
here is the course page - it contains the Syllabus, the tools used in
the course (simulators written in Java), and information about the boom
that covers the course' material.
what i'm not clear on, is during which semester students take this course.
--guy
--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg