Universality versus Locality: the Amsterdam Style of ALGOL Implementation

Karel van Oudheusden, G. Alberts

Research output: Contribution to journalArticleAcademic


During the 1950s, computer programming was a local practice. Programs from one computing center would not work on computers elsewhere. For example, programs written in Munich differed radically in style from programs written in Amsterdam. Similar problems were also encountered in the United States, leading American computer programmers in 1954 to combine the ideal of a machine-independent programming tool with the metaphor of language. European researchers eagerly embraced this idea and subsequently collaborated with their American colleagues in developing such a language, called Algol. Although it was meant to be universal in terms of machine-independence, in order to be a working technology, Algol by necessity had to be implemented on a specific type of machine. As a result, the aspired universal Algol language would be bound to a compiler, or translator, which depended on the specificities of the underlying machine. Local machinery, traditions of programming, and compilers would in turn give Algol a local appearance and, in more than one case, led to the decision of working with a restricted version of the language. Thus, in practice, Algol came with local dialects. This article elaborates on the tension between universality and locality by contrasting the Amsterdam and Munich styles of programming. In addition to the famous controversy on recursive procedures, it also highlights Edsger Dijkstra's concept of a machine-independent object language.
Original languageEnglish
Article number52-63
JournalIEEE Annals of the History of Computing
Issue number4
Publication statusPublished - Oct 2014


Dive into the research topics of 'Universality versus Locality: the Amsterdam Style of ALGOL Implementation'. Together they form a unique fingerprint.

Cite this