Clem Cole Edited 21-April-2026 The files in this directory are historical documents associated with the development of the B Programming Language. Except the the files B_Manual.{ms,pdf}, these documents were sourced from Dennis Ritchie's personal webpages at Bell Labs. Nokia, as of this writing, still maintains that website as: https://www.nokia.com/bell-labs/about/dennis-m-ritchie/kbman.html kbman.pdf This is a scan made by Dennis in July of 1997 of the original B Manual that Ken published on January 7, 1972 as an internal technical memorandum. Thompson_B_Manual_19720107.html Using Adobe Acrobat, Dennis took the previous document and edit it into an HTML webpage, which he posted on his internal site. B_Manual.ms B_Manual.pdf I took version from Dennis and ran it through pandoc(1). Then with Ken's original open in another window, I edited it to try to make this version to look as much as possible to match the original, while adding/correcting errors with typeface and layout. I also corrected a few errors that Dennis had created, primarly having to do with the section headers. But I left Ken's errors, such as the lack of section 11.0. --------------------------------------------------------------- BCPL Notes Ken and Dennis were exposed to Richard's BCPL compiler suite during their Multics work. I have included these documents here with the B documents as the first line of Ken's document expresses that B was a direct descendant of BCPL and also because Dennis had decided to include the file bcpl.pdf in his webpage. If the reader has more interest in the B programming language, the CHM maintains a website named the "BCPL History Collection" and can be found at: https://softwarepreservation.computerhistory.org/BCPL/ bcpl.pdf This is a scan of the July 21, 1967 Project Mac Memorandum-M-352 that Martin Richards published in 1967, containing a description of a version of BCPL as originally implemented for CTSS on the IBM 7094 at MIT. According to Project Mac Progress Report IV, he published a Feb 16, 1968 update called M-M352-1. I can not find that version, although we also have found this version of the document. Richards-BCPL-ReferenceManual.pdf This is a different scan of the July 21, 1967 Project Mac Memorandum-M-352 that Dennis makes reference too. It was printed on a using a different printer/typeball that the other copy. As Dennis mentions in his notes, pages 29-34 contain the missing example programs from the named "bcpl.pdf" copy of the document. --------------------------------------------------------------- Bell Laboratories Computing Science Technical Report #8 (a.k.a. CSTR#8). Published in January 1973, it was published as the next two documents, combined and published together. This seems to be the last Bell Labs-authored documentation for the language. bref.html bref.pdf These two files are Steve Johnson's "Users' Reference to B" as was implemented on MH-TSS on a Honeywell H6070. btut.html btut.pdf These two files are Brian Kernighan's "A Tutorial Introduction to the Language B" Reference to B" as was implemented on MH-TSS on a Honeywell H6070. --------------------------------------------------------------- B Language Implementation Notes Direct descendants of the Johnson Honeywell compiler can still be found that target GCOS-8 and maintained by a Canadian firm called Thinkage. See: https://www.thinkage.ca/gcos/product-uwtools.htm For many years, the most widely B compiler implementation suite has been "ybc" (Yasha's B Compiler) as it is ABI-compatible with C with Mac OS X, Linux and Windows targets. However, it on produces 32-bit x86 binaries. See: https://github.com/AlexCeleste/ybc Recently, the LLVM folks have announced "blang" which is described as a "B programming language compiler written in Go with LLVM IR backend and clang-like command-line interface." See: https://github.com/sergev/blang Other modern B implementations based on Johnson's reference and Brian Kernighan's tutorial can be found by asking Google Gemini: "What modern implementations of the B programming language can be found"