Algol 68 was the first programming language that was being taught at the University of Twente when I started studying there in 1981.
I vaguely remember something about a compiler (probably the Algol 68 compiler) with the wierdest bug that I have ever heard about a compiler: In certain months of the year, it had problems with compiling certain programs and students were adviced to try again a month later. The bug was never found.
Past submissions:
https://news.ycombinator.com/item?id=31283119 (14 comments)
https://news.ycombinator.com/item?id=18734687 (0 comments)
https://news.ycombinator.com/item?id=5268301 (0 comments)
Algol 68 was/is a magnificent language, and the experience of reading the Revised Report from cover to cover is unforgettable.
The logical structure of the language was driven to the extreme: I vaguely remember that
int a;
was merely an abbreviation of something like ref int a = new int;
>"The Algol 68 Genie project preserves and promotes Algol 68 out of educational as well as scientific-historical interest, by making available a recent checkout compiler-interpreter written from scratch by Marcel van der Veer, together with extensive documentation for both the language and this new implementation."
Can someone say what a "checkout compiler-interpreter" is? I am not familiar with this term. Is this something specific to Algo 68?
Url changed from https://jmvdveer.home.xs4all.nl/en.download.algol-68-genie-c..., which points to this.
This really does take me back, as I was a graduate student under J.E.L. Peck (though I didn't actually work on his compiler) back around 1970. I have always felt that ALGOL 68 (he insisted on the block caps) was undervalued as a programming language; it was harmed by its impenetrable specification (two-level grammars are a clever idea, but horrible for actual understanding), and the absolutist ideas of the compiler writers (the standard complaint about any short-cuts was “what if we have a left bracket, 50 pages of code, and the matching right bracket”, as though that was actually something somebody would do.
The lack of a concrete syntax also harmed it: different implementations spelled the “begin” keyword as BEGIN, 'BEGIN, and .BEGIN. Goodbye portability!
And finally, ALGOL 68 learned from ALGOL 60's failure to include an I/O library: they did a splendid job on their transput library. Unfortunately, it is record-oriented (as were most mainstream OS file systems of the time) at just the moment when Unix was about to popularize the byte-stream file abstraction.
I really wish that an ALGOL 68-style language had been successful, even given these mistakes (when you do a radical rethink of programming languages, you are bound to make mistakes). There was even at least one machine-oriented ALGOL-68 style language named Mary, which might have been a good replacement for C. It's good to see that at least some work on implementation continues.