Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

I wouldn't be so dismissive of Algol 68. It wasn't particularly successful in production, but then neither was Algol 60. OTOH conceptually the former feels closer to modern PL design, with a greater emphasis on consistency and orthogonality. And if we're talking about specific features that ended up in other languages, well - the C keywords "void", "struct" and "union" all came from Algol 68.


view as:

Not to mention "long" and "short". Also, yes, PL/I had a POINTER type, but just one. Algol 68 did what languages do now, i.e. specifies the type of thing the pointer points at (or the type of the thing the REF type references; speaking of Algol 68 vocabulary, "dereference" made it into common CS jargon).

Yup, I totally forgot "long" and "short". Although I'm not sure that counts as a lesson learned given that C still came up with "double" for what should have been "long float".

Typed pointers were an ALGOL-W thing originally, though.


Algol 68 structs descend, at least partially, from JOVIAL (which was based on ALGOL 58). A language that is annoyingly still in use, from what I heard.

I'd agree - I think the classification of Pascal as an Algol60 derivative is a bit off - Wirth was on the committee that wrote Algol68 - my impression is that Pascal is essentially all the easier bits of Algol68

Wirth was on the committee that worked on what was then referred to as "Algol X", but at the time there was no agreement on what exactly that would be. His (and Hoare's) proposal was more incremental relative to Algol 60, removing some features and adding others - most importantly, first-class strings, pointers, and structs - while retaining the overall syntax and semantics.

This proposal did not get enough support on the committee, though. Some people rejected it because they saw the additions as too minor, not warranting a whole new language so early. Others didn't like the fact that it relied on the same BNF + verbiage approach to define the spec that resulted in numerous ambiguities to Algol 60 (which was supposed to be rectified by the new formalism just developed by van Wijngaarden).

So Algol 68 ended up evolving in a different direction overall, which Wirth consistently criticized, and stepped down from IFIP after it published the first draft of the language. He took his own proposal and turned it into Algol W; and that, in turn, became Pascal.

So you could say that some of the concepts that made it into Pascal compared to Algol-60 - namely, pointers and records - had the same origin as those in Algol-68, but the point of divergence precedes either language.


When I read this:

> But everything ALGOL-68 did, PL/I did earlier and better.

I just wanted to write "Not so". As much as I appreciate the OP in general, his knowledge of Algol 68 is limited. Algol 68 was more than the introduction of first class datatypes. Parallel programming comes to mind. In comparison to PL/I, there were other features such as automatic memory management. It helped to have had John McCarthy in the commitee.


Legal | privacy