Issue No. 04 - Oct.-Dec. (2014 vol. 36)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MAHC.2014.61
Gerard Alberts , University of Amsterdam
Edgar G. Daylight , Utrecht University
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.
Programming, History, Europe, Computer languages, Program processors, Software engineering,Friedrich Bauer, history of computing, history of software, Algol, compiler construction, object language, Edsger W. Dijkstra, John Carr, Saul Gorn, Alan Perlis, Heinz Rutishauser, Peter Naur, Aad van Wijngaarden, Jaap Zonneveld, Klaus Samelson
Gerard Alberts, Edgar G. Daylight, "Universality versus Locality: The Amsterdam Style of Algol Implementation", IEEE Annals of the History of Computing, vol. 36, no. , pp. 52-63, Oct.-Dec. 2014, doi:10.1109/MAHC.2014.61