
Users' Reference to B (1972) - enthd
https://www.bell-labs.com/usr/dmr/www/kbman.html
======
reaperducer
Many many moons ago, we were taught in school that the "C" language got its
name because it was the successor to the "B" language, and the next big
language would be "P" because the computer industry was iterating through
"BCPL."

Can anyone confirm that was true at the time? (Obviously that's not how things
worked out.)

~~~
patrickg_zill
Pascal came out in 1970; C in 1972...

~~~
garmaine
C dates to 1969. It was used to write Unix, the first release of which was
1969.

[http://www.bell-labs.com/usr/dmr/www/chist.html](http://www.bell-
labs.com/usr/dmr/www/chist.html)

EDIT: I'm guessing you're getting this factoid from Wikipedia? Looks like an
error. The quote it references as justification of the origin of C is
misinterpreted. Thompson tried to write an operating system ONLY in C prior to
1972, but failed. Very early Unix was a mixture of C and assembly. Later
versions, which Ritchie is referencing, used assembly only for the parts you
really can't specify in C -- the boot loader and interrupt handlers. C was
kinda a work in progress between 1969 and 1973 (see above link), and still
after as it transitioned from K&R C to ANSI C. But there were releases
accompanying Unix before it stopped drastically changing circa 1973.

~~~
acqq
> C dates to 1969. It was used to write Unix, the first release of which was
> 1969.

Wrong. Early Unix was written in assembly, the machine was too small for
anything else and moreover C didn't exist then. From the DMR's chist link (1)
that you also refer to:

"Dennis Ritchie turned B into C during 1971-73"

Even B was definitely _not used_ to write the Unix of 1969-1973, but only run
on it:

"On the PDP-7 Unix system, only a few things were written in B except B
itself, because the machine was too small and too slow to do more than
experiment; rewriting the operating system and the utilities wholly into B was
too expensive a step to seem feasible."

Unix kernel was rewritten from assembly to C only in 1973:

"By early 1973, the essentials of modern C were complete. The language and
compiler were strong enough to permit us to rewrite the Unix kernel for the
PDP-11 in C during the summer of that year. "

The first Pascal compiler existed in 1970 which was inspired by Algol 60.
Wirth was in its "Working Group 2.1" in 1964. (2) Wirth published an article
about Pascal in ACM in 1971.

Finally, in the Go language (from 2009), in which Thompson was also involved,
the declarations follow more the Pascal spirit than the C spirit.

1) [http://www.bell-labs.com/usr/dmr/www/chist.html](http://www.bell-
labs.com/usr/dmr/www/chist.html)

2) [http://pascal.hansotten.com/niklaus-wirth/recollections-
abou...](http://pascal.hansotten.com/niklaus-wirth/recollections-about-the-
development-of-pascal/)

------
mseepgood
Check out his latest language:
[https://golang.org/ref/spec](https://golang.org/ref/spec)

~~~
vortico
What percentage of involvement was him in the language design?

------
fanf2
You might also like Rich Wareham’s B compiler (written in Python with llvm)
[https://github.com/rjw57/rbc](https://github.com/rjw57/rbc)

------
ape4
B was typeless but C is now the very definition of a typed language. B had BCD
(Binary coded decimal) constants with backticks. Of course that out of
fashion. B had semicolons separating statements.

------
aap_
I wrote a compiler for B some years ago. The code generation is horrible but
it was a fun project:
[https://github.com/aap/abc/](https://github.com/aap/abc/) Still mean to port
that to the PDP-10 eventually.

------
_kst_
The title says "(1996)", but the document itself says "This is a rendition,
after scanning, OCR, and editing, of an internal Bell Labs Technical
Memorandum dated January 7, 1972."

~~~
dang
OK we've rolled it back to 1972. Thanks!

