6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Fri Nov 22, 2024 3:10 am

All times are UTC




Post new topic Reply to topic  [ 7 posts ] 
Author Message
PostPosted: Sun Jul 20, 2014 5:16 pm 
Offline
User avatar

Joined: Mon Apr 23, 2012 12:28 am
Posts: 760
Location: Huntsville, AL
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

_________________
Michael A.


Last edited by MichaelM on Mon Aug 18, 2014 1:14 am, edited 2 times in total.

Top
 Profile  
Reply with quote  
PostPosted: Sun Jul 20, 2014 8:09 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10985
Location: England
Thanks!


Top
 Profile  
Reply with quote  
PostPosted: Mon Jul 21, 2014 5:26 am 
Offline

Joined: Sun Nov 08, 2009 1:56 am
Posts: 411
Location: Minnesota
I like the frequent use of the term "ad hoc". I don't have enough imagination to anticipate what the problem spots might be when starting from a top-down code-last approach. I need to start fiddling around with code before I can even begin to see what the whole solution might be.


Top
 Profile  
Reply with quote  
PostPosted: Sun Aug 17, 2014 10:11 pm 
Offline

Joined: Tue Jan 07, 2014 8:40 am
Posts: 91
Thanks for that! I knew that DEC had used threaded code in a FORTRAN compiler, but I didn't have a reference for it. Until now. :)

_________________
Because there are never enough Forth implementations: http://www.camelforth.com


Top
 Profile  
Reply with quote  
PostPosted: Mon Aug 18, 2014 12:15 am 
Offline

Joined: Tue Jan 07, 2014 8:40 am
Posts: 91
MichaelM wrote:
Therefore, I found and downloaded a copy of "Computer Engineering" from the archive.org, and printed out Chapter 15.


Okay, I give up. Where did you find the complete "Computer Engineering" for download? I looked at archive.org and all I can find is an image scan of the first 16 pages or so.

Edited to add: never mind, I think I found it here: http://www.computerhistory.org/collecti ... /102630383

_________________
Because there are never enough Forth implementations: http://www.camelforth.com


Top
 Profile  
Reply with quote  
PostPosted: Mon Aug 18, 2014 12:58 am 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10985
Location: England
See also this page-by-page version online (in text):
http://research.microsoft.com/en-us/um/ ... 000387.htm


Top
 Profile  
Reply with quote  
PostPosted: Mon Aug 18, 2014 1:06 am 
Offline
User avatar

Joined: Mon Apr 23, 2012 12:28 am
Posts: 760
Location: Huntsville, AL
Brad:

The one at the Computer History Museum is the one that I downloaded.

_________________
Michael A.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 7 posts ] 

All times are UTC


Who is online

Users browsing this forum: Google [Bot] and 16 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: