Check out: ybc: a compiler for B
<https://github.com/Leushenko/ybc>
From a historical standpoint, a plain B compiler lacks
a very important
attribute of B in Unix. Yes, B presaged some C syntax. But its
shining
property was that it produced threaded code, for which both compact
and expanded runtime support was available. The latter had software
paging. Thus B transcended the limited physical memory of the early
PDP-11s.
If you can't compile something, you can't run it. A prime example was B
itself. Without software paging it would not have been able to recompile
itself, and Unix would not have been self-supporting.
Doug