Nice project. I wanted to do something like this too at some point.
I documented B for the PDP-7 and -11 here:
http://squoze.net/B/
I have a partially working, sort of portable B compiler (in C) here:
http://squoze.net/B/b.zip
Since B is so damn portable I wanted to target a bunch of architectures.
Started amd64 and pdp-8 but then other things got in a way (a VCF) and
my attention shifted.
best,
Angelo
On 23/04/19, Robert Swierczek wrote:
I just started a project to recreate the B compiler
for the PDP-11 as
authentically as possible, given the few fragments that remain and
some educated guesswork. It should be fun (for various definitions of
fun).
Here is the repository
https://github.com/rswier/pdp11-B
I have borrowed some tools from Warren's
https://github.com/DoctorWkt/unix-jun72
I have made a good start at reverse engineering the B run time library
in /usr/lib/libb.a. I have tried to make the source match the same
style as the earliest C library found on the last1120c-bits tape. The
remaining functions in libb.a include printf and printn which appear
to be written in B. This should provide more clues needed to create
the compiler.
I am also tackling the dis-assembly of the threaded code interpreter
/usr/lib/bilib.a (which at the moment is a big mess on my hard-drive)
Later steps will include creating the B compiler itself by carefully
pruning down the last1120c C compiler. The fun here will be to
boot-strap the B compiler without help from any existing modern
compilers. I think TMG will come into play to make that happen.
All are welcome to contribute!
Rob