appreciate
kildall-p.1-78-publishable-lowres
kildall-p.1-78-publishable-lowres
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Bootstrapping the Industry<br />
There is a direct trace from the two Burroughs B5500s at the UW and Stanford<br />
University through to compiler development in XPL for the Intel chip set, and on to<br />
CP/M and DOS.<br />
High-level languages like ALGOL on the B5500 changed the trend of using assembly<br />
language for "efficiency." For example, you really couldn' t write a B5500<br />
assembly language program unless you were a real technonerd. In 1966, the UW<br />
hired me to maintain the ALGOL compiler, and that old B5500 became my learning<br />
machine. I saw a ton of sunrises over that Computer Center.<br />
It was a great personal computer. I'd just plant a sign that said "B5500 Down For<br />
Maintenance" at about midnight and open shop again at 6:00 AM for student programs.<br />
Ok, so that's not fair. but that was a long time ago, in a galaxy far-far away,<br />
so don't blame me, 'cause I was just a kid, Ok?<br />
During this "maintenance," I'd take the whole B5500 system down. "reboot" and<br />
play in the B5500 ALGOL sandbox. In my own defense. I did, on occasion, actually<br />
fix some errors (sorry, "blunders") in the ALGOL compiler. However, Iseriously<br />
doubt that I ever deserved all of those paychecks.<br />
I will personally attest that this ALGOL compiler was, for the day, an elegant piece<br />
of code. ALGOL was written in ALGOL, and this got everyone's attention. thirty<br />
years ago that was a neat hat-trick. How do you write a compiler in its own language?<br />
You have to have an ALGOL compiler to write the ALGOL compiler, right?<br />
Chicken and egg.<br />
Solution? Write a small compiler using another computer, such as that KDF-9. This<br />
little program compiles code for the B5500 small ALGOL subset. Then, you start<br />
writing the ALGOL compiler using that subset. gradually improving the compiler<br />
step-by-step. Chicken and egg again.<br />
It's called "incremental improvement," and that's how all complicated programs<br />
are written. You just gradually improve to reach your goal in small steps. That's<br />
how humans solve problems. Hey, it's not such a big deal. After all, that's how<br />
Mom Nature solves problems as well.<br />
Computer Connections 23