The notes by Mark Brader, Alan Watson, and Clive Feather about the relationships between BCPL, B and C are substantially correct, though naturally there are a few nits to pick. I won't, here. There's one thing to note-- B was created (by Thompson) well before the book by Richards and Whitby-Strevens was published, and at least some of the differences between BCPL and B owe to divergent evolution, not deliberate change (though many do not).
I wrote a paper for the second History of Programming Languages conference in Cambridge (Mass) last April on the development of C, and it discusses how typeless BCPL and B evolved into C. It's in SIGPLAN Notices from about that time, and the whole proceedings and the discussions are being gathered into a book by ACM. (I will then see if I really said that teaching C as an introductory language would be a calamity, as someone quotes Dr. Dobbs as quoting me. Could I really use that word?)
I finally put the text of the paper up for anonymous ftp and netlib.
To get the (100KB) Postscript version by e-mail, send mail to
with the message body
send chistory.ps from research/memo
To retrieve it by anonymous FTP, log into research.att.com in the usual way, and get netlib/research/memo/chistory.ps.Z , which is the compressed Postscript (46KB).