<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Algol_60</id>
	<title>Algol 60 - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Algol_60"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Algol_60&amp;action=history"/>
	<updated>2026-06-04T01:38:38Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Algol_60&amp;diff=21098&amp;oldid=prev</id>
		<title>~2026-51252-0: Zeittafelverlinkt</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Algol_60&amp;diff=21098&amp;oldid=prev"/>
		<updated>2026-01-23T23:13:59Z</updated>

		<summary type="html">&lt;p&gt;Zeittafelverlinkt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Programmiersprache&lt;br /&gt;
|Name = Algol 60&lt;br /&gt;
|Paradigma = [[Prozedurale Programmierung|prozedural]], [[Imperative Programmierung|imperativ]], [[Strukturierte Programmierung|strukturiert]]&lt;br /&gt;
|Erscheinungsjahr = 1960&lt;br /&gt;
|Designer  = [[John Backus|Backus]], [[Friedrich L. Bauer|Bauer]], [[Julien Green (Informatiker)|Green]], [[Charles Katz|Katz]], [[John McCarthy|McCarthy]], [[Peter Naur|Naur]], [[Alan Perlis|Perlis]], [[Heinz Rutishauser|Rutishauser]], [[Klaus Samelson|Samelson]], [[Adriaan van Wijngaarden|van Wijngaarden]], [[Bernard Vauquois|Vauquois]], [[Joseph Wegstein|Wegstein]], [[Michael Woodger|Woodger]]&lt;br /&gt;
|Entwickler =&lt;br /&gt;
|Typisierung = &lt;br /&gt;
|Implementierung =&lt;br /&gt;
|Dialekte =&lt;br /&gt;
|Beeinflusst_von = [[Algol 58]]&lt;br /&gt;
|Beeinflusste = die meisten imperativen Sprachen (sogenannte &amp;#039;&amp;#039;Algol-ähnliche&amp;#039;&amp;#039; Sprachen), z.&amp;amp;nbsp;B. [[Simula]], [[Combined Programming Language|CPL]], [[Pascal (Programmiersprache)|Pascal]], [[Ada (Programmiersprache)|Ada]], [[C (Programmiersprache)|C]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Algol 60&amp;#039;&amp;#039;&amp;#039; ist eine [[Programmiersprache]] der [[ALGOL]]-Familie. Sie wurde 1958–1963 unter der Führung der &amp;#039;&amp;#039;[[Association for Computing Machinery]]&amp;#039;&amp;#039; (ACM) und der &amp;#039;&amp;#039;[[Gesellschaft für Angewandte Mathematik und Mechanik]]&amp;#039;&amp;#039; (GAMM), später dann der &amp;#039;&amp;#039;[[International Federation for Information Processing]]&amp;#039;&amp;#039; (IFIP), entwickelt.&lt;br /&gt;
Beteiligt waren unter anderem [[John W. Backus]], [[Friedrich L. Bauer]], [[John McCarthy]], [[Peter Naur]], [[Alan J. Perlis]], [[Heinz Rutishauser]] und [[Klaus Samelson]].&lt;br /&gt;
Der Name &amp;#039;&amp;#039;Algol&amp;#039;&amp;#039; ist eine Kurzform für &amp;#039;&amp;#039;[[Algorithmus|Algorithmic]] Language&amp;#039;&amp;#039;,&amp;lt;ref&amp;gt;Laut Friedrich L. Bauer geht die Namensprägung aus dem Jahre 1957 (wenigstens in Deutschland) auf [[Hermann Bottenbruch]] zurück ({{Webarchiv |url=http://conservancy.umn.edu/bitstream/107106/1/oh128flb.pdf |wayback=20120422070035 |text=Friedrich L. Bauer}}).&amp;lt;/ref&amp;gt; &amp;#039;&amp;#039;60&amp;#039;&amp;#039; steht für das Jahr der »Fastfertigstellung« (ein Diskussionsentwurf wurde als &amp;#039;&amp;#039;International Algorithmic Language (IAL)&amp;#039;&amp;#039; oder [[Algol 58]] bekannt; die endgültige Fassung (als »Revised Report« tituliert) stammt aus dem Jahre 1963).&lt;br /&gt;
&lt;br /&gt;
== Der Sprachentwurf ==&lt;br /&gt;
Algol 60 war als international entwickelte, von kommerziellen Interessen unabhängige, &amp;#039;&amp;#039;[[Plattformunabhängigkeit|portable]]&amp;#039;&amp;#039;, [[Prozedurale Programmierung|prozedurale Programmiersprache]] in erster Linie für wissenschaftliche, das hieß damals [[Numerische Mathematik|numerische]], Zwecke gedacht. Es gab aber auch wichtige nichtnumerische Anwendungen. Ihre Einfachheit, und die für damalige Verhältnisse weitgehende Freiheit von Restriktionen, machte sie angenehm zu benutzen.&lt;br /&gt;
: So wurde das Betriebssystem der [[Burroughs Corporation|Burroughs]]-[[B5000]]-Rechner in einer ALGOL-Version (ESPOL) programmiert. Ein anderes Beispiel ist ein bibliothekarisches Katalogsystem für den ab 1962 verfügbaren [[Großrechner]] Telefunken [[TR 4 (Rechner)|TR 4]]. Vgl. auch die Sprache [[JOVIAL]], von ALGOL 58 abgeleitet, die jahrzehntelang zur Programmierung von Prozessrechnern in der Luft- und Raumfahrt (Avionik) diente.&lt;br /&gt;
&lt;br /&gt;
Algol 60 war ein Meilenstein in der Geschichte der Programmiersprachen:&lt;br /&gt;
* Mit ihr begann die exakte Definition von Spracheigenschaften unabhängig von (und vor) jeder Implementierung (anders als dies noch bei [[LISP]] war&amp;lt;ref&amp;gt;Erst mit [[Scheme]] wurde das anders; später wurde auch in [[Common-Lisp]] der Geburtsfehler des dynamischen Geltungsbereichs (&amp;#039;&amp;#039;dynamic scope&amp;#039;&amp;#039;) korrigiert.&amp;lt;/ref&amp;gt;).&lt;br /&gt;
* Der &amp;#039;&amp;#039;Algol 60 Report&amp;#039;&amp;#039; führte die formale Definition der [[Syntax]] mit Hilfe der [[Backus-Naur-Form]] ein, die bald allgemein üblich wurde.&amp;lt;ref&amp;gt;[[Peter Naur]] (ed.), Revised Report on the Algorithmic Language Algol 60, veröffentlicht in &amp;#039;&amp;#039;Numerische Mathematik&amp;#039;&amp;#039;, Vol.4(1) (1962), p.420–453, in &amp;#039;&amp;#039;Comm. ACM&amp;#039;&amp;#039;, Vol.6(1) (1963), p.1–17, und in &amp;#039;&amp;#039;Computer Journal&amp;#039;&amp;#039;, Vol.5(4) (1963), p.349–367; [http://standardpascaline.org/Algol60-RevisedReport.pdf PDF]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* 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.&lt;br /&gt;
* ALGOL schrieb –&amp;amp;nbsp;gegen den Trend der Zeit&amp;amp;nbsp;– [[Laufzeitfehler|Laufzeitprüfungen]] vor, eine Entscheidung, die erst langsam gewürdigt und nachgeahmt wurde.&lt;br /&gt;
* Auch die Unterscheidung zwischen der Sprache an sich und ihrer technischen (Eingabe-)Darstellung (die auf vorhandene Geräte Rücksicht nehmen musste) fand Beifall, aber nur wenige Nachfolger.&amp;lt;ref&amp;gt;Etwa [[Fortress (Programmiersprache)|Fortress]]. Vgl. [[ISWIM]] und Pepper, Hofstedt: &amp;#039;&amp;#039;Funktionale Programmierung&amp;#039;&amp;#039; (2006), &amp;#039;&amp;#039;Jenseits von ASCII&amp;#039;&amp;#039; (S.&amp;amp;nbsp;4)&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als (unerwartet) großes 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&amp;amp;nbsp;X1]]) ausgegeben.&lt;br /&gt;
&lt;br /&gt;
== Eigenschaften ==&lt;br /&gt;
Die Methode der &amp;#039;&amp;#039;sequentiellen Formelübersetzung&amp;#039;&amp;#039; von Bauer und Samelson ermöglichte es, auf viele Restriktionen zu verzichten, wie sie etwa [[Fortran]] kannte. Die darin enthaltene Idee des [[Stapelspeicher]]s ermöglichte dann auch [[Rekursion|rekursive]] Prozeduren ([[Edsger W. Dijkstra]]).&lt;br /&gt;
&lt;br /&gt;
Vom [[Lambda-Kalkül|λ-Kalkül]] inspiriert war die Möglichkeit innerer Prozedurdefinitionen (»[[Blockstruktur]]«). &amp;#039;&amp;#039;begin&amp;#039;&amp;#039;-Blöcke (anonyme Prozeduren) wurden vor allem dazu benutzt, Felder mit variablen Grenzen im [[Stapelspeicher]] anzulegen. Sichtbarkeit und Gültigkeitsbereich der Variablen waren dabei korrekt &amp;#039;&amp;#039;lexikalisch&amp;#039;&amp;#039; definiert. Vorgesehen waren auch &amp;#039;&amp;#039;own&amp;#039;&amp;#039;-Variablen, deren Lebensdauer der Programmlauf sein sollte (vgl. ‚static‘ in [[C (Programmiersprache)|C]]); dieses Konzept wurde aber häufig nicht implementiert.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls vom [[Lambda-Kalkül|λ-Kalkül]] waren die Parameterübergabe-Modi genommen:&lt;br /&gt;
* [[Wertparameter]] (Schlüsselwort &amp;#039;&amp;#039;value&amp;#039;&amp;#039;) wurden vor dem Aufruf ausgewertet (&amp;#039;&amp;#039;Strikte Auswertung&amp;#039;&amp;#039; – »erst Auswerten, dann Einsetzen«).&lt;br /&gt;
* Für [[Namensparameter]], &amp;#039;&amp;#039;default&amp;#039;&amp;#039;, war die Semantik einer textuellen Einsetzung vorgeschrieben (&amp;#039;&amp;#039;Nichtstrikte (lazy) Auswertung&amp;#039;&amp;#039; – »erst Einsetzen, dann Auswerten«). Dies führte im Zusammenhang mit Speichervariablen zu gewissen Schwierigkeiten, erlaubte im Prinzip aber eine elegante Formulierung von Integralen und ähnlichen Aufgaben:&lt;br /&gt;
    integriere (&amp;#039;&amp;#039;&amp;#039;alpha*x*x&amp;#039;&amp;#039;&amp;#039;, x, a, b)&lt;br /&gt;
: ([[Jensen’s device]]). Zur Implementierung verwandte man &amp;#039;&amp;#039;thunks&amp;#039;&amp;#039;, [[Closure (Funktion)|Closures]] von anonymen Funktionen (und benannt »nach dem Geräusch, das sie auf der 7090 machten«).&lt;br /&gt;
&lt;br /&gt;
Algol führte mit [[Lisp]] das Prinzip der [[Formatfreiheit]] in Programmiersprachen ein. Dabei hat ein Schlüsselwort immer dieselbe Bedeutung, unabhängig von der Position im Programm. Außerdem ist der Beginn einer neuen Zeile dem Leerzeichen gleichgestellt. In den damals vorherrschenden Sprachen [[Fortran]] und [[COBOL]] war die Positionierung der Anweisungen auf den [[Lochkarte]]n dagegen entscheidend – ein Schlüsselwort konnte je nach Position eine andere Bedeutung haben. Auch die Zeileneinteilung war bei diesen Sprachen nicht frei.&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
Das folgende (vollständige) Algol-60-Programm gibt &amp;lt;code&amp;gt;Hallo, Welt!&amp;lt;/code&amp;gt; auf dem [[Datenstrom|Ausgabekanal&amp;amp;nbsp;2]] aus:&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;begin comment&amp;#039;&amp;#039;&amp;#039; Hallo-Welt-Programm in Algol&amp;amp;nbsp;60;&lt;br /&gt;
     outstring (2, &amp;amp;#x02BF;Hallo, Welt!&amp;amp;#x02BE;)&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;end&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Wirkungen/Bedeutung/Nachfolger ==&lt;br /&gt;
{{Zitat&lt;br /&gt;
 |Text=ALGOL war ein Fortschritt gegenüber den meisten seiner Nachfolger.&lt;br /&gt;
 |Autor=[[Tony Hoare|C. A. R. Hoare]]}}&lt;br /&gt;
&lt;br /&gt;
In der Praxis fand Algol weniger Anwendung als [[Fortran]] oder [[COBOL]]; das minderte aber nicht seinen langfristigen Einfluss (s.&amp;amp;nbsp;o.). Lange Zeit war Algol 60 im akademischen Bereich vorbildlich. Es litt aber unter der mangelnden Implementierungsbereitschaft großer Computer-Hersteller. IBM wollte ab 1964 mit [[PL/I]] die drei „großen“ Sprachen COBOL, Fortran und Algol 60 ablösen.&lt;br /&gt;
&lt;br /&gt;
Der wichtigste Nachfolger war [[Simula|Simula 67]].&lt;br /&gt;
&lt;br /&gt;
Der US-amerikanische Informatiker [[John Charles Reynolds]] behauptete, die meisten Sprachen seien nicht Algol&amp;amp;nbsp;60, sondern dem (nie implementierten) [[ISWIM]] gefolgt; er selbst stellte mit &amp;#039;&amp;#039;Forsythe&amp;#039;&amp;#039; eine Fortentwicklung in der Algol-Tradition vor.&amp;lt;ref&amp;gt;[http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.42.9976 CiteSeerX]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Algol 68]] war dem Namen zum Trotz ein völliger Neuentwurf, der ein geteiltes Echo fand. [[Niklaus Wirth]] entwickelte alternativ [[Algol&amp;amp;nbsp;W]], woraus in der Weiterentwicklung [[Pascal (Programmiersprache)|Pascal]] werden sollte.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Liste von Programmiersprachen]]&lt;br /&gt;
* [[Zeittafel der Programmiersprachen]]&lt;br /&gt;
* [[Namensparameter]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* H. T. de Beer: [http://heerdebeer.org/ALGOL/The_History_of_ALGOL.pdf &amp;#039;&amp;#039;The History of the ALGOL Effort&amp;#039;&amp;#039;.] (PDF; 1,2&amp;amp;nbsp;MB) 2006. – vi, 97 pp. (M.Sc. thesis, TU Eindhoven)&lt;br /&gt;
* Heinz Rutishauser: &amp;#039;&amp;#039;Description of Algol 60&amp;#039;&amp;#039;. [[Grundlehren der mathematischen Wissenschaften]], Springer, Berlin 1967. (Handbook for automatic computation; 1,a)&lt;br /&gt;
* [[Albert A. Grau]], [[Ursula Hill-Samelson|Ursula Hill]], [[Hans Langmaack (Informatiker)|Hans Langmaack]]: &amp;#039;&amp;#039;Translation of Algol 60&amp;#039;&amp;#039;. Grundlehren der mathematischen Wissenschaften, Springer, Berlin 1967. (Handbook for automatic computation; 1,b)&lt;br /&gt;
* Rudolf Herschel: &amp;#039;&amp;#039;Anleitung zum praktischen Gebrauch von ALGOL 60&amp;#039;&amp;#039;. 4. Auflage. R. Oldenbourg Verlag, München 1969&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=F.E.J. Kruseman Aretz&lt;br /&gt;
   |Titel=The Dijkstra-Zonneveld ALGOL 60 compiler for the Electrologica X1&lt;br /&gt;
   |Sammelwerk=ReportRapport SEN Software Engineering&lt;br /&gt;
   |Band=SEN-N0301&lt;br /&gt;
   |Verlag=Stichting Centrum voor Wiskunde en Informatica&lt;br /&gt;
   |Ort=Amsterdam&lt;br /&gt;
   |Datum=2003&lt;br /&gt;
   |ISSN=1386-3711&lt;br /&gt;
   |Online=[http://oai.cwi.nl/oai/asset/4155/04155D.pdf cwi.nl]&lt;br /&gt;
   |Format=PDF&lt;br /&gt;
   |KBytes=}}&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&amp;lt;!--* http://www.masswerk.at/algol60/&lt;br /&gt;
* http://www.masswerk.at/algol60/report.htm - &amp;#039;&amp;#039;Revised Report on the Algorithmic Language Algol 60&amp;#039;&amp;#039; (Links anscheinend tot) --&amp;gt;&lt;br /&gt;
* [http://www.gnu.org/software/marst/marst.html &amp;#039;&amp;#039;MARST: an Algol-to-C translator&amp;#039;&amp;#039;] auf gnu.org&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise und Anmerkungen ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Normdaten|TYP=s|GND=4141870-0}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Imperative Programmiersprache]]&lt;br /&gt;
[[Kategorie:Programmiersprache mit einem ISO-Standard]]&lt;/div&gt;</summary>
		<author><name>~2026-51252-0</name></author>
	</entry>
</feed>