I recently bought a copy of "Computer Engineering: A DEC View of Hardware Systems Design". I still prefer to read real books rather than web pages or PDFs.
I recently finished reading the book's Chapter 15, "Turning Cousins into Sisters: An Example of Software Smoothing of Hardware Differences", by Ronald Brender. I found the topic particularly interesting.
In the early 1970s, DEC required a FORTRAN compiler in order for the PDP-11 minicomputers to compete against the offerings of their competitors, especially IBM. The limited amount of memory in their systems drove them to implement the compiler so that it produced the application as threaded code. The resulting compiler produced very efficient code that allowed the compiler, the linker, and the application to run in an 8kW (16kB) environment along with whatever operating system was present on the computer. The instruction set of the PDP-11 easily realized the threaded code using its complex addressing modes without implementing an interpreter like that used for BASIC or most FORTH implementations.
I found the article particularly enlightening and thought provoking in relation to my current effort to add some instructions to the M65C02 FPGA core to support direct threaded code (DTC) FORTH. I think others here might also find the article interesting and thought provoking. Therefore, I found and downloaded a copy of "Computer Engineering" from the archive.org, and printed out Chapter 15. It is attached below for any who have an interest in threaded code compilers.
Attachment:
File comment: Using Threaded Code to Implement a FORTRAN Compiler - Ronald Brender
Bell-ComputerEngineering-Ch15(Brender, R.).pdf [947.25 KiB]
Downloaded 198 times
Edit: 21 July 2014. Added the following paper by James Bell, Digital Equipment Corporation, that is referenced by Ronald Brender. (C. Gordon Bell is one of three editors of the book for which Ronald Brender wrote Chapter 15.)
Attachment:
File comment: Reference cited by R. Brender. Found at http://home.iae.nl/users/mhx/Forth_Bell.pdf
Forth_Bell.pdf [283.19 KiB]
Downloaded 130 times
Edit: 16 Aug 2014. Added the following paper. It presents a slightly different approach than that presented in the the original paper by James Bell. It appears that the approach described above by Brender is an improvement on the basic technique the Bell described, but DEC's approach does not appear to be the same as that described by Dewar in the following paper which proposes indirect threading rather than direct threading.
Attachment:
File comment: Indirect Threaded Code
indirect_threaded_code.pdf [158.82 KiB]
Downloaded 146 times