The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: gregg.drwho8@gmail.com (Gregg Levine)
Subject: [TUHS] b remnants?
Date: Sat, 15 Oct 2011 00:37:20 -0400	[thread overview]
Message-ID: <CAC5iaNG9PYn_JuxF8E_6a2oqCwd14fL=v8T3Bi9iofvk5KfWNA@mail.gmail.com> (raw)
In-Reply-To: <C1DCD24F4CD3E011B4240003FF08577C5B0B@EXCHANGE>

On Sat, Oct 15, 2011 at 12:20 AM, Jason Stevens
<jsteve at superglobalmegacorp.com> wrote:
> Wasn't the other 'advantage' of threaded/pcode that it'd be smaller than a
> native executable?
>
> I know it's out of left field, but building Dungeon on RT-11, you have to
> use the treaded compiler, and I assume it was a space thing.. Just as on
> MS-DOS (Yeah I know...) a save for fitting stuff in 64kb for the later
> compilers was to compile to p-code..
>
> Wikipedia gives p-code for Pascal a timeframe of the 'early 70's and
> attribes the whole interpeted code as O-Code for BCPL ....
>
> I wonder if anyone ever did save any TripOS tapes for the PDP-11.....
>
> -----Original Message-----
> From: A. P. Garcia [mailto:a.phillip.garcia at gmail.com]
> Sent: Friday, October 14, 2011 11:58 PM
> To: tuhs at minnie.tuhs.org
> Subject: Re: [TUHS] b remnants?
>
>
> On Fri, Oct 14, 2011 at 9:52 AM, A. P. Garcia
> <a.phillip.garcia at gmail.com> wrote:
>>
>> In memoriam, I read The Development of the C Language:
>> http://cm.bell-labs.com/who/dmr/chist.html
>>
>> It talks a bit about how B was originally implemented somewhat like
>> ETH Pascal (p-code). Are there any B interpreters or programs in the
>> archive?
>
> What intrigued me about this is that it's such an early example of an
> abstract machine running as an interpreter. BCPL, roughly
> contemporaneous, used ocode as an intermediate language, but it seems
> this was intended to be further translated into assembly. While it's
> possible to interpret ocode, in practice it seems this was rare, if it
> was done at all. Almost everything I've read about abstract/vitual
> machines traces its roots back to the following source:
>
> James R. Bell. 1973. Threaded code. Commun. ACM 16, 6 (June 1973),
> 370-372. DOI=10.1145/362248.362270
> http://doi.acm.org/10.1145/362248.362270
>
> Here's where dmr mentions implementing B using this technique:
>
> The B compiler on the PDP-7 did not generate machine instructions, but
> instead `threaded code' [Bell 72], an interpretive scheme in which the
> compiler's output consists of a sequence of addresses of code
> fragments that perform the elementary operations. The operations
> typically-in particular for B-act on a simple stack machine.
>
> Note he says it was published in 1972, when it actually appeared in
> print in 1973 (same page numbers). Two paragraphs later he writes:
>
> By 1970, the Unix project had shown enough promise that we were able
> to acquire the new DEC PDP-11. The processor was among the first of
> its line delivered by DEC, and three months passed before its disk
> arrived. Making B programs run on it using the threaded technique
> required only writing the code fragments for the operators, and a
> simple assembler which I coded in B; ; soon, dc became the first
> interesting program to be tested, before any operating system, on our
> PDP-11. Almost as rapidly, still waiting for the disk, Thompson
> recoded the Unix kernel and some basic commands in PDP-11 assembly
> language. Of the 24K bytes of memory on the machine, the earliest
> PDP-11 Unix system used 12K bytes for the operating system, a tiny
> space for user programs, and the remainder as a RAM disk. This version
> was only for testing, not for real work; the machine marked time by
> enumerating closed knight's tours on chess boards of various sizes.
> Once its disk appeared, we quickly migrated to it after
> transliterating assembly-language commands to the PDP-11 dialect, and
> porting those already in B.
>
> The abstract machine is also mentioned in Thompson's "Users' Reference
> to B", dated January 7, 1972. If the 1970 date is correct, they were
> using this technique some three years before most of the computing
> world knew about it!?

Hello!
This discussion is beginning to strike a heck of a lot of chords.
Jason what is this TripOS you are describing here about? And did you
actually get Dungeon to work?

-----
Gregg C Levine gregg.drwho8 at gmail.com
"This signature fought the Time Wars, time and again."



  reply	other threads:[~2011-10-15  4:37 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-15  4:20 Jason Stevens
2011-10-15  4:37 ` Gregg Levine [this message]
2011-10-15  8:44 ` Michael Davidson
  -- strict thread matches above, loose matches on Subject: below --
2011-10-15 16:14 Jason Stevens
2011-10-15 16:41 ` Gregg Levine
2011-10-17 16:18   ` Al Kossow
2011-10-17 16:29     ` Gregg C Levine
2011-10-14 18:23 Jason Stevens
2011-10-14 14:52 A. P. Garcia
2011-10-14 15:34 ` Derrik Walker
2011-10-14 15:53   ` Gregg Levine
2011-10-14 16:35     ` Derrik Walker
2011-10-14 19:17       ` Jeremy C. Reed
2011-10-14 20:08   ` John Cowan
2011-10-14 18:06 ` Tim Newsham
2011-10-15  3:57 ` A. P. Garcia
2011-10-15  4:57   ` Andru Luvisi
2011-10-15  8:54   ` Michael Davidson
2011-10-15 14:12     ` Gregg Levine
2011-11-01 16:24   ` Tim Bradshaw
2011-10-15  6:20 ` Greg 'groggy' Lehey

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAC5iaNG9PYn_JuxF8E_6a2oqCwd14fL=v8T3Bi9iofvk5KfWNA@mail.gmail.com' \
    --to=gregg.drwho8@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).