Warren Toomey <wkt(a)minnie.tuhs.org> writes:
The chist paper doesn't mention NB, which was the
missing link between
B and C.
How about this?
In 1971 I began to extend the B language by adding a character type
and also rewrote its compiler to generate PDP-11 machine instructions
instead of threaded code. Thus the transition from B to C was
contemporaneous with the creation of a compiler capable of producing
programs fast and small enough to compete with assembly language. I
called the slightly-extended language NB, for `new B.'
[...]
After creating the type system, the associated syntax, and the
compiler for the new language, I felt that it deserved a new name;
NB seemed insufficiently distinctive. I decided to follow the
single-letter style and called it C, leaving open the questing
whether the name represented a progression through the alphabet or
through the letters in BCPL.
I seem to recall a story where there was an NB
interpreter and also
a compiler, and Ken kept adding functionality to one which made it
slower, and this had a knock-on effect.
Maybe this?
After the TMG version of B was working, Thompson rewrote B in itself
(a bootstrapping step). During development, he continually struggled
against memory limitations: each language addition inflated the
compiler so it could barely fit, but each rewrite taking advantage
of the feature reduced it size.
--
Lars Brinkhoff
http://lars.nocrew.org/ Linux, GCC, PDP-10,
Brinkhoff Consulting
http://www.brinkhoff.se/ HTTP programming