discussion
discussion copied to clipboard
Non-obvious Forth Books
I'm trying to compile a list of books where Forth or Forth-like constructs figure prominently, but where Forth is not in the title.
Browsing my shelves I have at least the following (not counting books on Postscript or HP calculators):
- Interpretation and Instruction Path Coprocessing (Debaere & Van Campenhout)
- The Anatomy of Programming Languages (Fischer)
- Threaded Interpretive Languages (Loeliger)
- Intelligent Embedded Systems (Odette)
- History of Programming Languages (Bergsin & Gibson)
- Masterminds of Programming (Biancuzzi & Warden)
- Stack Computers: The New Wave (Koopman)
- Write your own programming language using C++ (Smith)
- Designing Embedded Hardware (Catsoulis)
- Learning by Example using Verilog (Haskell & Hanna)
- Machine-Indepent Organic Software Tools (Godfrey)
I'd appreciate any contributions to this list.
IEEE 1275-1994 Standard for Boot (Initialization, Configuration) Firmware
not exactly a "book", but it passes the "duck test" for books.
Cellular Automata Machines (Toffoli and Margolus)
- Literate Programming (Donald E. Knuth)
- Software Development and Reality Construction (C. Floyd et al.)
- Janus: A Summing Up (Arthur Koestler)
Unfortunately, I don't have any books to contribute but I'm very interested in reading some of this material. As you compile the list, would it be possible to list the publication dates? Given how quickly the field is evolving, the year would provide a helpful clue re the publication's scope and context.
BTW, why do not to use onsite wiki to maintain this list?
I agree. The wiki would be a perfect place to develop this list! I've copied the above publications to the following page: https://github.com/ForthHub/discussion/wiki/ForthPublications
One issue with the wiki is that you don't receive updates! In an issue you're always emailed and notified in Github.com if there are new comments (and you're following the repo).
I like that issues encourage discussions. The GitHub wiki implementation doesn't.
From technical point of view, notifications of this wiki changes can be implemented by any third party since the wiki has its git repository: https://github.com/ForthHub/discussion.wiki.git (it is not accessible via browser).
List of books is a kind of database. But GitHub issues are not very suitable to maintain such databases. GitHub wiki fits better. An ordinary git repository can be also used for that.
I have a feeling that new books will continue to be suggested through this thread. Which is cool for all the reasons mentioned above. But its also easy enough for someone to intermittently port them into the wiki for a running list. In other words both systems could complement one another. Just a thought.
Up and Running with Asyst 2.0 (Campbell et al, 1987)
Designing and Programming Personal Expert Systems (Carl Townsend & Dennis Feucht, TAB Books, 1986)
It would be great if there was a explanation how Forth figures prominently in these books.
It would be great if there was a explanation how Forth figures prominently in these books.
- Interpretation and Instruction Path Coprocessing (Debaere & Van Campenhout, MIT Press)
This book analyzes and compares the various threaded code interpretation approaches and discusses the design of specialized coprocessor chips for accelerating threaded code interpretation. One of my favorite Forth-related books.
- Threaded Interpretive Languages (Loeliger, Byte Books)
Detailed description of one man's idiosyncratic Z80 ITC Forth implementation. This was a hardbound book published by Byte Magazine, it reuses the famous cover image from the Byte special issue on Forth.
- The Anatomy of Programming Languages (Fischer)
Compares the constructs of a few representative programming languages from a language design perspective, Forth is one the main languages examined and compared.
- Intelligent Embedded Systems (Odette)
Hybrid Forth/C approach to a Prolog VM for embedded systems. Louis Odette was a frequent contributor to FORML and JFAR on the topic of Forth in Expert systems (one of his FORML papers was about a system for NASA's Skylab).
- History of Programming Languages (Bergsin & Gibson)
Proceedings of the second (IIRC) ACM HOPL conference. Includes Rather's paper on the early years of Forth (IIRC this is an extended version of the paper that's available online).
- Masterminds of Programming (Biancuzzi & Warden)
Includes the transcript of a Chuck Moore interview on Forth software and hardware, IIRC the free online version of the interview only includes the software portion.
- Write your own programming language using C++ (Smith)
Slim book on a roll your own Forth extension language for C/C++ applications.
- Learning by Example using Verilog (Haskell & Hanna)
A Verilog primer for the old Nexys 2 FPGA board that uses the design of a Forth core as its culminating example. (Richard Haskell was a contributor to various Forth publications).
- Machine-Indepent Organic Software Tools (Godfrey, 1985)
This book describes a development and VM runtime system for portable software that had suspiciously many similarities to Forth but using different buzzwords, implementations include Apple II and Sperry Univac 1100.
- Up and Running with Asyst 2.0 (Campbell et al, 1987)
Asyst was a fairly popular Forth-based data acquisition and analysis package.
- Designing and Programming Personal Expert Systems (Carl Townsend & Dennis Feucht, TAB Books, 1986)
This book was mentioned by Will Baden in the 1986 FORML paper "Escaping Forth" as being a book about Forth. I'm not familiar with it.
Excellent, thanks!
IPS - High Level Programming of Small Systems (Karl Meinzer) ISBN 0-9530507-0-X
Forth Inspired OS used on satellites in the 70s. Book is now available as PDF here: http://www.jrmiller.demon.co.uk/products/ipsbk.html
Recent discussion on the Forth Subreddit: https://www.reddit.com/r/Forth/comments/9ssakt/does_anybody_know_ips/
"Janus, A Summing Up", at least the ones amazon (sorry) lists, appears to have nothing to do with computing, and was essentially written by a journalist of the 20th century. Janus in computing refers to 2 non-Forth languages
Anyway, I removed that from the wiki.
"Janus" deserves an explanation, I agree.
In "Janus, A Summing Up" Arthur Koestler coined the term Holon to describe an entity that is both a whole built of parts and a part of a higher whole. In general, there are different rules on each level. This is a property of natural systems. It also applies to Forth words, I believe and use in Holonforth. - Koestler's concept is discussed on the web as the "Holarchy". It is not the usual way to see Forth, but it explains for me the continuing interest in Forth via some unconscious understanding.
For another influence of Holons on programming see Donald Knuth's recollection in http://www.literateprogramming.com/
My distillation of forth wisdom aligns with the notion stated. Different rules, or handling of different word types (I know ~ lol). I use WORDCATS (a set or words labeled like a vocabulary) to group words with similar granularity together. When what I right feels like lumpy gravy I re-factor.
On Fri, Mar 8, 2019 at 3:51 AM Wolf Wejgaard [email protected] wrote:
"Janus" deserves an explanation, I agree. Here it comes, for your reconsideration.
In "Janus, A Summing Up" (as a recap of ideas collected in "The Ghost in the Machine") Arthur Koestler coined the term Holon to describe an entity that is both a whole built of parts and a part of a higher whole. In general, there are different rules on each level. This is a property of natural systems. It also applies to Forth words, I believe and use in Holonforth. - Koestler's concept is discussed on the web as the "Holarchy". It is not the usual way to see Forth, but it explains for me the continuing interest in Forth via some unconscious understanding.
For another influence of Koestler on programming see Donald Knuth's recollection in http://www.literateprogramming.com/
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ForthHub/discussion/issues/51#issuecomment-470870226, or mute the thread https://github.com/notifications/unsubscribe-auth/AFC6xbjp-UJC9nFCqPNpKJBiFcNhXhUgks5vUjKRgaJpZM4OuYqb .