www.wikidata.de-de.nina.az
Algol 60 ist eine Programmiersprache der ALGOL Familie Sie wurde 1958 1963 unter der Fuhrung der Association for Computing Machinery ACM und der Gesellschaft fur Angewandte Mathematik und Mechanik GAMM spater dann der International Federation for Information Processing IFIP entwickelt Beteiligt waren unter anderem John W Backus Friedrich L Bauer John McCarthy Peter Naur Alan J Perlis Heinz Rutishauser und Klaus Samelson Der Name Algol ist eine Kurzform fur Algorithmic Language 3 60 steht fur das Jahr der Fastfertigstellung ein Diskussionsentwurf wurde als International Algorithmic Language IAL oder Algol 58 bekannt die endgultige Fassung als Revised Report tituliert stammt aus dem Jahre 1963 Algol 60Paradigmen prozedural imperativ strukturiertErscheinungsjahr 1960Designer Backus Bauer Green Katz McCarthy Naur Perlis Rutishauser Samelson van Wijngaarden Vauquois Wegstein WoodgerEntwickler John W Backus Friedrich Ludwig Bauer Charles Katz John McCarthy Peter Naur Alan J Perlis Heinz Rutishauser Klaus Samelson Adriaan van Wijngaarden Bernard Vauquois 1 Aktuelle Version ISO 1538 1984 2 15 Oktober 1984 Beeinflusst von Algol 58Beeinflusste die meisten imperativen Sprachen sogenannte Algol ahnliche Sprachen z B Simula CPL Pascal Ada C Inhaltsverzeichnis 1 Der Sprachentwurf 2 Eigenschaften 3 Beispiel 4 Wirkungen Bedeutung Nachfolger 5 Siehe auch 6 Literatur 7 Weblinks 8 Einzelnachweise und AnmerkungenDer Sprachentwurf BearbeitenAlgol 60 war als international entwickelte von kommerziellen Interessen unabhangige portable prozedurale Programmiersprache in erster Linie fur wissenschaftliche das hiess damals numerische Zwecke gedacht Es gab aber auch wichtige nichtnumerische Anwendungen Ihre Einfachheit und die fur damalige Verhaltnisse weitgehende Freiheit von Restriktionen machte sie angenehm zu benutzen So wurde das Betriebssystem der Burroughs B5000 Rechner in einer ALGOL Version ESPOL programmiert Ein anderes Beispiel ist ein bibliothekarisches Katalogsystem fur den ab 1962 verfugbaren Grossrechner Telefunken TR 4 Vgl auch die Sprache JOVIAL von ALGOL 58 abgeleitet die jahrzehntelang zur Programmierung von Prozessrechnern in der Luft und Raumfahrt Avionik diente Algol 60 war ein Meilenstein in der Geschichte der Programmiersprachen Mit ihr begann die exakte Definition von Spracheigenschaften unabhangig von und vor jeder Implementierung anders als dies noch bei LISP war 4 Der Algol 60 Report fuhrte die formale Definition der Syntax mit Hilfe der Backus Naur Form ein die bald allgemein ublich wurde 5 ALGOL zeigte den Wert eines klaren und einfachen Sprachkerns auf eine Erfahrung die bald Peter Landin zu seinem Sprachentwurf ISWIM inspirieren und so die meisten nach ALGOL entwickelten Programmiersprachen beeinflussen sollte ALGOL schrieb gegen den Trend der Zeit Laufzeitprufungen vor eine Entscheidung die erst langsam gewurdigt und nachgeahmt wurde Auch die Unterscheidung zwischen der Sprache an sich und ihrer technischen Eingabe Darstellung die auf vorhandene Gerate Rucksicht nehmen musste fand Beifall aber nur wenige Nachfolger 6 Als unerwartet grosses Problem erwies sich dass die Ein Ausgabe nicht geregelt worden war so dass deren Implementierungen stark zwischen den Compilern variieren Beispielsweise wird ein Text einmal mit dem OUTSTRING und einmal mit dem WRITETEXT Befehl beispielsweise bei der Electrologica X1 ausgegeben Eigenschaften BearbeitenDie Methode der sequentiellen Formelubersetzung von Bauer und Samelson ermoglichte es auf viele Restriktionen zu verzichten wie sie etwa Fortran kannte Die darin enthaltene Idee des Stapelspeichers ermoglichte dann auch rekursive Prozeduren Edsger W Dijkstra Vom l Kalkul inspiriert war die Moglichkeit innerer Prozedurdefinitionen Blockstruktur begin Blocke anonyme Prozeduren wurden vor allem dazu benutzt Felder mit variablen Grenzen im Stapelspeicher anzulegen Sichtbarkeit und Gultigkeitsbereich der Variablen waren dabei korrekt lexikalisch definiert Vorgesehen waren auch own Variablen deren Lebensdauer der Programmlauf sein sollte vgl static in C dieses Konzept wurde aber haufig nicht implementiert Ebenfalls vom l Kalkul waren die Parameterubergabe Modi genommen Wertparameter Schlusselwort value wurden vor dem Aufruf ausgewertet Strikte Auswertung erst Auswerten dann Einsetzen Fur Namensparameter default war die Semantik einer textuellen Einsetzung vorgeschrieben Nichtstrikte lazy Auswertung erst Einsetzen dann Auswerten Dies fuhrte im Zusammenhang mit Speichervariablen zu gewissen Schwierigkeiten erlaubte im Prinzip aber eine elegante Formulierung von Integralen und ahnlichen Aufgaben integriere alpha x x x a b Jensen s device Zur Implementierung verwandte man thunks Closures von anonymen Funktionen und benannt nach dem Gerausch das sie auf der 7090 machten Algol fuhrte mit Lisp das Prinzip der Formatfreiheit in Programmiersprachen ein Dabei hat ein Schlusselwort immer dieselbe Bedeutung unabhangig von der Position im Programm Ausserdem ist der Beginn einer neuen Zeile dem Leerzeichen gleichgestellt In den damals vorherrschenden Sprachen Fortran und COBOL war die Positionierung der Anweisungen auf den Lochkarten dagegen entscheidend ein Schlusselwort konnte je nach Position eine andere Bedeutung haben Auch die Zeileneinteilung war bei diesen Sprachen nicht frei Beispiel BearbeitenDas folgende vollstandige Algol 60 Programm gibt Hallo Welt auf dem Ausgabekanal 2 aus begin comment Hallo Welt Programm in Algol 60 outstring 2 ʿHallo Welt ʾ endWirkungen Bedeutung Nachfolger Bearbeiten ALGOL war ein Fortschritt gegenuber den meisten seiner Nachfolger C A R Hoare In der Praxis fand Algol weniger Anwendung als Fortran oder COBOL das minderte aber nicht seinen langfristigen Einfluss s o Lange Zeit war Algol 60 im akademischen Bereich vorbildlich Es litt aber unter der mangelnden Implementierungsbereitschaft grosser Computer Hersteller IBM wollte ab 1964 mit PL I die drei grossen Sprachen COBOL Fortran und Algol 60 ablosen Der wichtigste Nachfolger war Simula 67 Der US amerikanische Informatiker John Charles Reynolds behauptete die meisten Sprachen seien nicht Algol 60 sondern dem nie implementierten ISWIM gefolgt er selbst stellte mit Forsythe eine Fortentwicklung in der Algol Tradition vor 7 Algol 68 war dem Namen zum Trotz ein volliger Neuentwurf der ein geteiltes Echo fand Niklaus Wirth entwickelte alternativ Algol W woraus in der Weiterentwicklung Pascal werden sollte Siehe auch BearbeitenListe von Programmiersprachen NamensparameterLiteratur BearbeitenH T de Beer The History of the ALGOL Effort PDF 1 2 MB 2006 vi 97 pp M Sc thesis TU Eindhoven Heinz Rutishauser Description of Algol 60 Grundlehren der mathematischen Wissenschaften Springer Berlin 1967 Handbook for automatic computation 1 a Albert A Grau Ursula Hill Hans Langmaack Translation of Algol 60 Grundlehren der mathematischen Wissenschaften Springer Berlin 1967 Handbook for automatic computation 1 b Rudolf Herschel Anleitung zum praktischen Gebrauch von ALGOL 60 4 Auflage R Oldenbourg Verlag Munchen 1969 F E J Kruseman Aretz The Dijkstra Zonneveld ALGOL 60 compiler for the Electrologica X1 In ReportRapport SEN Software Engineering SEN N0301 Stichting Centrum voor Wiskunde en Informatica 2003 ISSN 1386 3711 cwi nl PDF Weblinks BearbeitenMARST an Algol to C translator auf gnu orgEinzelnachweise und Anmerkungen Bearbeiten aconit inria fr www iso org Laut Friedrich L Bauer geht die Namenspragung aus dem Jahre 1957 wenigstens in Deutschland auf Hermann Bottenbruch zuruck Friedrich L Bauer Memento vom 22 April 2012 im Internet Archive Erst mit Scheme wurde das anders spater wurde auch in Common Lisp der Geburtsfehler des dynamischen Geltungsbereichs dynamic scope korrigiert Peter Naur ed Revised Report on the Algorithmic Language Algol 60 veroffentlicht in Numerische Mathematik Vol 4 1 1962 p 420 453 in Comm ACM Vol 6 1 1963 p 1 17 und in Computer Journal Vol 5 4 1963 p 349 367 PDF Etwa Fortress Vgl ISWIM und Pepper Hofstedt Funktionale Programmierung 2006 Jenseits von ASCII S 4 CiteSeerXNormdaten Sachbegriff GND 4141870 0 lobid OGND AKS Abgerufen von https de wikipedia org w index php title Algol 60 amp oldid 238278728