Zusammenfassung
Der informatikgeschichtliche Artikel, dessen Titel durch eine Arbeit von C. L. McGowan angeregt ist, behandelt ein Problem, das E. W. Dijkstra nicht bewußt gestellt hat, sondern das er irrtümlicherweise 1960 in einer Aussage bzw. Vorschrift zur Implementierung rekursiver Prozeduren der blockstrukturierten Programmiersprache ALGOL60 aufgeworfen hat. Die irrtümliche ,,most recent“-Aussage warb implizit für dynamische statt ALGOL-intendierter statischer Namensbindung. Dieses Propagieren verursachte Irritationen beim Programmverstehen und -implementieren zwischen Anwendungsprogrammierern und Übersetzerkonstrukteuren und führte zu nichttreffenden und fehlleitenden Darstellungen in der Fachliteratur. Erstaunlicherweise erlebte das funktionale Programmieren mit Lisp eine ganz ähnliche Geschichte.
Organische Weiterentwicklung von praxisrelevanten Programmiersprachen wurde durch Dijkstras Aussage deutlich gehemmt. Man suchte den genannten Irritationen zu entgehen, indem man das Auftreten formaler Prozeduren ausschloß, ungeschachteltes Programmieren forcierte oder dynamische Namensbindung als generelles semantisches Prinzip propagierte. Solche Maßnahmen erschweren allerdings das Verfeinern und Verifizieren von Software; insbesondere pflegt statische Namensbindung zu allgemeineren Gesetzen und Regeln mit klareren Bezügen zur mathematischen Logik zu führen, die man bei Programmspezifikation und -verifikation braucht.
Bemerkenswerterweise kann nicht einmal objektorientiertes Programmieren mit ungeschachtelten Klassen die inhärente Komplexität der Verweisstrukturen zwischen Prozedurinkarnationen herunterschrauben, Strukturen, wie sie blockstrukturierte ALGOL-artige Programme mit formalen Prozeduren zur Laufzeit hervorbringen können. Das Verstehen objektorientierter Programme ist also durchaus nicht leichter als das von Programmen mit formalen Prozeduren. Der Weg etwa vom originalen, flachen Java hin zu Java mit inneren Klassen im Jahre 2000 ist konsequent und macht das Einbetten ALGOL-artiger Sprachen durchsichtiger.
References
Allen FE (1969) Program Optimization. Ann. Rev. Autom. Programming, Vol. 5. Pergamon Press, New York
Aho AV, Sethi R, Ullman JD (1989) Compiler-Bau, Teil 1. Addison-Wesley, Bonn
Bauer FL, Samelson K (1957) Verfahren zur automatischen Verarbeitung von kodierten Daten und Rechenmaschinen zur Ausübung des Verfahrens. Patentanmeldung Deutsches Patentamt
Bauer FL (2008) Persönliche Mitteilung zum Kopenhagener Treffen 1959 mit E. W. Dijkstra und K. Samelson
Cocke J, Kennedy K (1977) An Algorithm for Reduction of Operator Strength. Commun ACM 20(11):850–856
Dijkstra EW (1960) Recursive Programming. Num Math 2:312–318
Grau AA, Hill U, Langmaack H (1967) Translation of ALGOL60. In: Samelson K (chief ed.) Handbook for Automatic Computation Ib. Springer, Berlin Heidelberg New York
Gries D (1971) Compiler Construction for Digital Computers. Wiley, New York London Sydney Toronto
Hill U, Langmaack H, Schwarz HR, Seegmüller G (1962) Efficient handling of subscripted variables in ALGOL60-compilers. Proceedings of the Symposium on Symbolic Languages in Data Processing, Rome. Gordon & Breach, New York, pp 333–340
Hill U (1962) Der ALGOL-Übersetzer ALCOR MAINZ 2002. Diplomarbeit, Inst. f. Angew. Math. Univ. Mainz
Hill U, Langmaack H (1964) ALGOL-Manual. Spezielle Anhänge 1–6, Beilagen 1–3. Übersetzer ALCOR MAINZ 2002, 2K und 5K für die Siemens-DV-Anlage 2002. Beschr. NV Bs 36/1, 33 pp. Siemens & Halske AG, Wernerwerk, München
Hill U, Langmaack H (1965) Spezielle Anhänge zum ALGOL-Manual für den Übersetzer ALCOR MÜNCHEN 2002 für die Siemens-DV-Anlage 2002. Spezielle Anhänge 1–7, Beilagen 1–4, 50 pp. Siemens & Halske AG, München
Kandzia P, Langmaack H (1974) On a theorem of McGowan concerning the “most recent”-property of programs. Bericht A 74/07, Fachb. Ang. Math. Inf., Univ. Saarland, 19 pp
Kandzia P (1974) On the “most recent”-property of ALGOL–like programs. In: Loeckx J (ed) Proc. 2nd Coll. Automata, Languages and Programming. LNCS 14, 97–111. Springer, Berlin Heidelberg New York
Langmaack H (1964) Der Übersetzer ALCOR MUENCHEN 2002. Bericht, Tagung der ALCOR-Gruppe, Bad Soden/Taunus, 19./20. Oktober 1964. Manuskript, 22 pp. TH München
Langmaack H (1973) On Correct Procedure Parameter Transmission in Higher Programming Languages. Acta Inform 2(2):110–142
Langmaack H (2002) Klaus Samelsons frühe Beiträge zur Informatikentwicklung. Informatik-Spektrum 18:132–137
McGowan CL (1972) The “most recent” error: its causes and correction. In: Proc. ACM Conf. on Proving assertions about programs. SIGPLAN Notices 7, No. 1, SIGACT News 14:191–202
Naur P et al. (eds) (1960) Report on the Algorithmic Language ALGOL60. Num Math 2:106–136
Naur P et al. (eds) (1963) Revised Report on the Algorithmic Language ALGOL60. Num Math 4:420–453
Olderog E-R (1981) Sound and Complete Hoare-like Calculi Based on Copy Rules. Acta Inform 16:161–197
Olderog E-R (1981) Charakterisierung Hoarescher Systeme für ALGOL-ähnliche Programmiersprachen. Dissertation. Bericht 5/81, Inst. Informatik Prakt. Math., Univ. Kiel, 185 pp
Paul M (2009) Persönliche Mitteilung zu ALGOL58 und dessen Interpretierer
Perlis AJ, Samelson K (eds.) (1959) ACM Committee on Programming Languages and GAMM Comittee on Programming. Report on the Algorithmic Language ALGOL. Num Math 1:41–60
Randell B, Russell LJ (1964) ALGOL60 Implementation. Academic Press, London New York
Rutishauser H (1951) Über automatische Rechenplanfertigung bei programmgesteuerten Rechenanlagen. Z Angew Math Mech 31:255
Samelson K, Bauer FL (1959) Sequentielle Formelübersetzung. Elektr Rechenanl 1(4):176–182
Samelson K (1957) Probleme der Programmierungstechnik. In: Int. Koll. ü. Probleme d. Rechentechnik, Dresden 1955. VEB Deutscher Verlag der Wissenschaften, Berlin, S 61–68
van der Poel WL (1952) Dead Programmes for a Magnetic Drum Automatic Computer. Appl Sci Res B 3:190–198
Waite WM, Goos G (1984) Compiler Construction. Springer, New York Berlin Heidelberg Tokyo
Wilhelm R, Maurer D (1992) Übersetzerbau. Theorie, Konstruktion, Generierung. Springer, Berlin Heidelberg New York
Wilhelm R, Maurer D (1997) Übersetzerbau. Theorie, Konstruktion, Generierung. 2. Auflage. Springer, Berlin Heidelberg NewYork
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Langmaack, H. Dijkstras fruchtbarer, folgenreicher Irrtum. Informatik Spektrum 33, 302–308 (2010). https://doi.org/10.1007/s00287-010-0433-7
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00287-010-0433-7