December 3rd, 2024

21 Algol 60 Compilers in 1962

In 1962, ALGOL 60's introduction spurred compiler development, facing challenges like limited resources. Median implementation time was two man-years, with academic influences contrasting corporate-driven languages like Fortran and COBOL.

Read original articleLink Icon
21 Algol 60 Compilers in 1962

In 1962, the landscape of programming languages was significantly shaped by the introduction of ALGOL 60, which had its specification published in May 1960. During this period, compiler development was a burgeoning field, with a June 1962 paper documenting around 21 compilers, although some may have been dialects or closely related languages. The 1960s marked a pivotal era for programming languages, often referred to as a "Cambrian explosion." Compiler writers faced numerous challenges, including limited memory resources and primitive input/output methods, such as punched cards and tapes. The median implementation time for these compilers was approximately two man-years, with some implementations taking as little as 0.25 man-years for simple ports, while others, like those by SDC, required up to 80 man-years for comprehensive implementations. The ALGOL 60 Implementation book published in 1964 greatly advanced compiler writing techniques. The committee that defined ALGOL 60 was composed of academics, contrasting with the corporate-driven development of languages like Fortran and COBOL. This distinction may have influenced the nature of the compilers developed for ALGOL 60 compared to those for other languages.

- ALGOL 60's specification was published in May 1960, leading to the development of numerous compilers by 1962.

- Compiler development in the 1960s faced significant challenges due to limited technology and resources.

- The median implementation time for ALGOL 60 compilers was about two man-years.

- The ALGOL 60 Implementation book published in 1964 provided crucial insights for compiler writers.

- The committee behind ALGOL 60 was primarily academic, differing from the corporate influences on other languages like Fortran and COBOL.

Link Icon 7 comments
By @int_19h - 5 months
Algol 60 is also ... not exactly the easiest language to compile, even today. Here's the spec:

https://www.masswerk.at/algol60/report.htm

Call by name in particular can be very tricky, especially where it intersects with higher-order functions.

It can also be interesting to read contemporary discussions of problematic spots in the language, e.g.:

https://dl.acm.org/doi/10.1145/366193.366209

https://dl.acm.org/doi/10.1145/363717.363743

And the original ALGOL bulletin which has committee reports and mailing lists for the design process:

https://archive.computerhistory.org/resources/text/algol/alg...

By @usr1106 - 5 months
How many C or C++ compilers are in wider use today?

Not really working in the area and did not research now, but I can come up with:

* gcc

* clang

* Microsoft probably has their own implementation

* Intel probably still has their own implementation

* ?

Edit: OpenVMS maybe, but not sure whether that qualifies for in wider use

Edit2: ARM of course

By @glimshe - 5 months
One cool thing about Algol is that, while the language itself is over 60 years old, most modern programmers can have a decent understanding of source code written in it. It's a bit like reading 17th century English. You don't quite understand everything, but you can grasp most of it.

I wonder why the retrocomputing crowd hasn't done much in ALGOL. Perhaps because it's just easier to write in BASIC, which was influenced by it.

By @gpderetta - 5 months
How many of them could pass Knuth test [1]?

[1] https://en.wikipedia.org/wiki/Man_or_boy_test

By @wordglyph - 5 months
Key Innovations Introduced by ALGOL 60: Block Structure: It introduced the concept of structuring code into blocks, which paved the way for modular programming.

Formal Syntax: ALGOL 60 used Backus-Naur Form (BNF) to formally define its syntax, setting a standard for future language specifications.

Recursion: It supported recursive function calls, which was revolutionary at the time.

Lexical Scoping: It allowed nested functions and controlled variable scope.

Platform Independence: It aimed to be machine-independent, making it suitable for documenting algorithms.

By @smurpy - 5 months
My friend Colin Broughton completed the first full implementation of the Algo68 spec. Apparently there was some concern that it was not going to be implementable!

https://en.wikipedia.org/wiki/FLACC

By @ggm - 5 months
Algol 68 ftw!