Infocom on PDP-11

Paul Koning pkoning at equallogic.com
Wed May 11 08:34:47 CDT 2005


>>>>> "Tom" == Tom Jennings <tomj at wps.com> writes:

 >>> For that matter, Algol had local variables long before C was
 >>> invented, and as you pointed out, there's an Algol for the PDP-8.
 >>> (Then again, that's not a true compiler -- it compiles to an
 >>> intermediate form that looks very much like a subset of the
 >>> Burroughs 5500 instruction set.)
 >>  Using an IL was a way of making the complier easier I'd guess.
 >> Compiler deign has become more sophisticated since.

 Tom> I dunno about that. I just read (and worked out on paper)
 Tom> Randell's 1964 ALGOL IMPLEMENTATION book. Algol had(has) stuff
 Tom> no (or few) language has today, like runtime evaluation of
 Tom> stacked dynamic arguments.

You mean "call by name".  Indeed.  That's one of several Algol 60
features that were subsequently recognized as mistakes, and never
repeated.  (Label assignment is another; I forgot the correct term.)

 Tom> As far as sophistication goes -- a better measure than simply
 Tom> how clever or nifty a thing is -- how far did it advance the
 Tom> state of the art?  Good Algol's in the early 1960's look like
 Tom> stuff robbed from the far-flung future. A lot of the "compilers"
 Tom> from that era we'd today call p-code interpreters (terminology
 Tom> changes) but man, Algol60 is neat stuff. (Not the bloated
 Tom> monster Algol68 (I think it was) became.

Then again, Algol 68 is the source of many C++ features -- iostreams
for example.

Let's see, Algol 60 brought us:
- Formal grammars (BNF)
- Block structure
- Local variables
- Scope of names
- Declarations
- Type safety

and indirectly
- structured programming
- parser generators

 Tom> The Whetsone Algol compiler ran, in one pass, as fast as the
 Tom> source-input reader hardware, in 7000 words of memory! Though
 Tom> slow, it's a full-featured language, unlike C which is basically
 Tom> a portable assembler (I loved writing in C).

I don't know how big the first Algol 60 compiler (at MC Amsterdam) was
-- probably similar, quite possibly smaller.  

 Tom> Algol had it's share of horrors, but man it is the basis for
 Tom> nearly all modern languages. C's block and scope structure came
 Tom> directly from Algol. 

Lobotomized, of course -- C left out a bunch of important parts from
the Algol block structure.

 Tom> Python's objects (the best done of any
 Tom> language I've used, I hate to admit, since I find the python
 Tom> culture utterly hideous) are directly analogous to the
 Tom> Whetstone's scoping -- hell you could put OO structure into the
 Tom> Whetstone compiler without ruining it!

Hm.  Algol 60 certainly has no OO nature.  Algol 68 does, the
beginnings of it.

	   paul



More information about the cctalk mailing list