Hi folks

I was going to let this go ... but there are some important historical facts 
that are at least fascinating -- and they certainly put some of this into 
better context.

Many of these threads can be chased back to the development of the Algol 
language and especially the B5000 computer (many of the main ideas were 
"consolidated" and/or downright invented by Bob Barton).

It's worth reading Barton's 1961 paper "A new approach to the functional design 
of a digital computer" to see how some of the ideas were presented very early 
on.


>From the standpoint of today, the B5000 can be described as multicore hardware 
>which directly implemented a multi-process and stack oriented byte coded CPU 
>with automatic swapping, memory protection, and the earliest capability 
>architecture using protected addresses. It took years for people who cared 
>about these ideas to even realize they had all been done in a hardware design 
>first.

It was part and parcel of the original design that every line of code in the 
system and its applications would be written in a higher level language -- to 
this end they extended Algol for systems programming (ESPOL).

Parts of this model have been used in software until the present day. Niklaus 
Wirth was a student while all this was going on, and two of his mentors were 
van Wijngaarten (on the Algol committee, and later of Algol 68 fame), and Harry 
Husky (who was one of the early hardware designers in the 50s, and was a good 
friend of Bob Barton).

van Wijngaarten wrote a terrific paper around 1962-3 called "a generalization 
of Algol" that essentially did the generalization by turning Algol into 
something like Lisp (which most of the Algol people didn't understand, even 
though McCarthy was on that committee and invented several of the Algol 
features -- I got the impression that they didn't like John).

Meanwhile, Strachey in England was doing something similar (and Landin did most 
of the real work).

Wirth wrote a paper in the ACM with the same title as van Wijngaarten's and 
exhibited a similar language using a 2D graphical syntax chart instead of BNF.

His thesis (IIRC) was on "extended precedence parsers" -- an attempt to 
automatically go from a (rather restricted) BNF like syntax description to a 
parser. (This was not very useful or fruitful -- others, such as Ned Irons took 
stronger paths on this problem space.)

But one of the fruits of this work was IMO the nicest thing that Wirth ever did 
-- which was the Euler language. This was a simple powerful dynamic clean 
Algol-like language that used many of the generalization ideas, parsed by his 
thesis scheme, with the semantics given in a simple readable imperative 
language that implemented a B5000 like byte-coded engine. This was published in 
the ACM Jan-Feb 1966 (with co-researcher Weber). If you threw away the parsing 
scheme and used a nicer one (like Meta II or Floyd-Evans productions), you had 
a little gem of a language that spanned what Algol could do, was nicely 
readable, plus its implementation (and was almost Lisp in a very nice form).

Weber later did an implementation of the byte-code language using the microcode 
of System 360 (this was not a very good design, but it was clearly the thing to 
do to get hardware to behave).


1966 was the year I entered grad school (having programmed for 4-5 years, but 
essentially knowing nothing about computer science). Shortly after encounters 
with and lightning bolts from the sky induced by Sketchpad and Simula, I found 
the Euler papers and thought you could make something with "objects" that would 
be nicer if you used Euler for a basis rather than how Simula was built on 
Algol. That turned out to be the case and I built this into the table-top plus 
display plus pointing device personal computer Ed Cheadle and I made over the 
next few years. 


Wirth went in a very different direction. Euler was not very fast, and in those 
days he was not interested in making hardware. (And I think he had a thing 
about being efficient.)

So he started doing languages he could optimize (and being on the "Algol X" 
committee probably had a lot of influence also). So he went in a different 
direction. Nor did he in those days and for many years afterwards appreciate 
the idea of "making instances" from "master descriptions" that was part and 
parcel of Sketchpad and Simula, and then my Flex machine. (Decades later, 
Modula did not make instances of its modules!)

In the beginning of his talk that was linked here, he talks about "1975 being 
the start of computing" because of the Alto (which actually started in 1973). 


And he mentions that the Cedar project in CSL had already done a whole system, 
and user interface in a strongly typed language. (And this happened years after 
it was done for the first time in a dynamic language with much less code 
(Smalltalk). Part of the message of microcode is that you can really make 
dynamic languages that work as well as static ones and that are smaller and 
much more convenient and powerful.)

I think of what we did at PARC in the 70s as "highly derivative of the best 
ideas of the 60s -- a great new recipe rather than brand new ingredients", and 
some of those came from Klaus.


The last time I looked at Oberon (at Apple more than 15 years ago) it did not 
impress, and did not resemble anything I would call an object-oriented language 
-- or an advance on anything that was already done in the 70s. But that's just 
my opinion. And perhaps it has improved since then.


Best wishes,


Alan




>________________________________
>From: Eduardo Cavazos <[email protected]>
>To: [email protected]
>Sent: Wednesday, August 31, 2011 12:54 AM
>Subject: [fonc] Re: Ceres and Oberon
>
>Alan Kay wrote:
>
>> I'm glad that he has finally come to appreciate OOP.
>
>There are two kinds of people on this list. Those who can tell when Alan
>is joking and those that can't. :-D
>
>Don't know which I am but I can at least say that the OOP that is in
>Oberon is not what Alan had in mind when he invented the term.
>
>Sorry if you were being sincere Alan... :-)
>
>At any rate, I do appreciate the Oberon system and the evolution of
>Wirth's language through Pascal, Modula-2, and Oberon. *Somebody* had to
>do the experiment that is: take a classical systems programming
>language, and implement a small, understandable, system and environment
>in that one language. I think the Oberon system is more or less what you
>get when you take a C-like language and "play it grand" on a
>workstation.
>
>As an aside, I think it's crazy that C hasn't at least grown a module
>system yet.
>
>Changing the subject a bit...
>
>We can all look to the past for great OS and language designs; each of
>us knows a few. However, I'm not so sure about the network aspects and
>the approaches to distributed computing. Can we look to the past for
>inspiring distributed computing environments? Or are the truly great and
>timeless ones yet to be invented? I guess we'll have to nail down and
>agree upon a decent node first.
>
>Ed
>
>
>_______________________________________________
>fonc mailing list
>[email protected]
>http://vpri.org/mailman/listinfo/fonc
>
>
>
_______________________________________________
fonc mailing list
[email protected]
http://vpri.org/mailman/listinfo/fonc

Reply via email to