03.08.2016 Views

appreciate

kildall-p.1-78-publishable-lowres

kildall-p.1-78-publishable-lowres

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!