[TUHS] B Source Code

Steve Johnson scj at yaccman.com
Wed Sep 13 05:43:54 AEST 2017


As far as artifacts go, I was on a 9 mo. sabbatical at Waterloo when
the big change took place (and having a daughter, to boot).  Coming
back to the labs was a bigger culture shock than going to Canada! 
Most of the B programs I had worked on, including Yacc, had become C
programs in my absence.

I suspect that was the fate of many of the B sources -- a couple of
hours editing, and they became C programs.   Remember that early C
did not have strong typing.  The few B programs I converted, I
remember the biggest difficulty was with character handling -- * was
used in B formats rather than % in C formats.

A harder artifact might be finding early C programs.  Dennis was
brilliant in the way he morphed everyone along with minimal pain, and
I tried to do the same with PCC.   To introduce a new incompatible
feature, first of all build a compiler where both the old and new
features both work.  Tell people that the old stuff still works, but
sell the new stuff.  After a few weeks, add an informational message
along the lines of "Deprecated usage, use ....".   Stay in this
stage for several months, perhaps increasing the emphasis of the
message gradually.  Then tell people that the old stuff will stop
working in 2 weeks.  And in 2 weeks, make the informational message a
fatal error (but don't remove the old code yet...).   Then, a while
later, leave the message but remove the old code.

It amazed me how quickly and (relatively) painless this process
was...  It did mean more work for the compiler writer, though.  The
transition from using hex constants as addresses in the kernel to
using strongly typed structure pointers was especially hairy.

Steve

----- Original Message -----
From:
 "Clem Cole" <clemc at ccc.com>

To:
"Robert Swierczek" <rmswierczek at gmail.com>
Cc:
"TUHS main list" <tuhs at minnie.tuhs.org>
Sent:
Tue, 12 Sep 2017 15:24:05 -0400
Subject:
Re: [TUHS] B Source Code

BTW:  Check out:   ybc: a compiler for B [1]

On Tue, Sep 12, 2017 at 2:14 PM, Clem Cole <clemc at ccc.com [2]>
 wrote:
Poke around the Honeywell archives.  I believe that there was at
least one implementation of QED and a runoff flavor that I saw.   As
I believe Steve Johnson has mentioned,iIt was popular at Waterloo at
one point - so check with the Waterloo folks. In fact, I had thought
that Mike Malcom used it for Thoth, QNX's predecessor. 

On Tue, Sep 12, 2017 at 2:03 PM, Robert Swierczek
<rmswierczek at gmail.com [3]>
 wrote:
Does anyone know of the existence of source code written in B (C's
predecessor?)

 I have encountered a few snippets here and there, but nothing
 substantial.  The only "real" program that I know of is AberMUD-1. 
It
 looks like there exists a physical print-out of it:

https://dropsafe.crypticide.com/article/12714 [4]

 Could it be that this is the only artifact left of this most
important
 "missing link" of C and Unix History?  How can this (and any other B
 source) be gathered and preserved?

 

Links:
------
[1] https://github.com/Leushenko/ybc
[2] mailto:clemc at ccc.com
[3] mailto:rmswierczek at gmail.com
[4] https://dropsafe.crypticide.com/article/12714

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20170912/9c6235c3/attachment-0001.html>


More information about the TUHS mailing list