Privacy Policy Cookie Policy Terms and Conditions Algol 60 - Wikipedia

Algol 60

aus Wikipedia, der freien Enzyklopädie

Die Programmiersprache Algol 60 wurde von 19581963 unter der Führung der Association for Computing Machinery (ACM) und der Gesellschaft für Angewandte Mathematik und Mechanik (GAMM), später dann der International Federation for Information Processing (IFIP), entwickelt. Beteiligt waren unter anderem John Backus, Friedrich Ludwig Bauer, John McCarthy, Peter Naur, Alan J. Perlis, Heinz Rutishauser und Klaus Samelson. Der Name Algol ist eine Kurzform für Algorithmic Language, 60 steht für das Jahr der »Fastfertigstellung« (ein Diskussionsentwurf wird manchmal als Algol 58 zitiert; die endgültige Fassung stammt aus dem Jahre 1963).

Inhaltsverzeichnis

[Bearbeiten] Der Sprachentwurf

Algol 60 war als international entwickelte, von kommerziellen Interessen unabhängige, portable, prozedurale Programmiersprache in erster Linie für wissenschaftliche, das hieß damals numerische, Zwecke gedacht. Interessanterweise gab es auch nichtnumerische Anwendungen, weil ihre Einfachheit und für damalige Verhältnisse weitgehende Freiheit von Restriktionen sie angenehm zu benutzen machte.

Algol 60 war ein Meilenstein in der Geschichte der Programmiersprachen:

  • Mit ihr begann die saubere Definition von Spracheigenschaften unabhängig von (und vor) jeder Implementierung (anders als dies noch bei LISP war, trotz der theoretischen Grundlage!).
  • Der Algol 60 Report führte die formale Definition der Syntax mit Hilfe der Backus-Naur-Form ein, die bald allgemein üblich wurde.
  • 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 – Laufzeitprüfungen vor, eine Entscheidung, die erst langsam gewürdigt und nachgeahmt wurde.

[Bearbeiten] Eigenschaften

Algol 60 führte das Prinzip der Blockstruktur und der Sichtbarkeit von Variablen ein:

  • Blöcke gruppieren Programme in logisch zusammenhängende Elemente,
  • Blöcke können verschachtelt werden und
  • auf eine Variable, die in einem Block definiert wird, kann nur in diesem Block selbst und in untergeordneten Blöcken zugegriffen werden.

Die Sprache kannte zwei Möglichkeiten, Parameter an Funktionen und Prozeduren zu übergeben. Sie unterschieden sich durch die Art, wie die Parameter-Variablen behandelt wurden:

  • Wertparameter (Call by Value) - beim Aufruf wird der Parameter-Variable der aktuelle Wert zugewiesen. Ändert sie während der Ausführung der Funktion später ihren Wert, wird dies vom Aufrufer nicht bemerkt.
  • Namensparameter (Call by Name) - beim Aufruf wird die Parameter-Variable durch den Parameter ersetzt. Dadurch wirken sich Änderungen der Variable auf den Aufrufer aus. Call by Name unterscheidet sich durch die Semantik der Ersetzung von dem heute üblichen Call by Reference. Die Call-by-Name-Semantik wird noch von C-Makros und der Scriptsprache Tcl (Tool Command Language) verwendet.

Algol 60 war die erste prozedurale Programmiersprache, die Rekursion ermöglichte.

Algol führte mit LISP das Prinzip der Formatfreiheit in Programmiersprachen ein. Dabei hat ein Schlüsselwort immer die selbe Bedeutung, unabhängig von der Position im Programm. In den damals vorherrschenden Sprachen FORTRAN und COBOL war die Positionierung der Anweisungen auf den Lochkarten dagegen entscheidend – ein Schlüsselwort konnte je nach Position eine andere Bedeutung haben.

[Bearbeiten] Beispiel

Das folgende (vollständige) Algol-60-Programm gibt "HALLO, WELT" auf dem Ausgabekanal 2 aus:

'COMMENT' HALLO, WELT PROGRAMM IN ALGOL 60;
 'BEGIN'
    OUTSTRING(2,'('HALLO, WELT')');
 'END'

[Bearbeiten] Wirkungen/Bedeutung/Nachfolger

ALGOL war ein Fortschritt gegenüber den meisten seiner Nachfolger. -- C. A. R. Hoare.

Algol 68 war dem Namen zum Trotz ein völliger Neuentwurf, der ein geteiltes Echo fand. Der wichtigste Nachfolger war Simula 67. Niklaus Wirth entwickelte aus Algol 60 die Sprache Algol-W (Algol-Wirth), welche zur Grundlage von Pascal werden sollte.

Wirtschaftlich war Algol weniger bedeutsam als FORTRAN oder COBOL. Allerdings beeinflusste es stark die Entwicklung späterer Programmiersprachen, zum Beispiel von PL/I, Pascal, C, Ada und sogar noch die des in den 1990ern entwickelten Java. Manche dieser Nachfolger hatten wesentlich größeren Erfolg.

Der Ansatz, die kontextfreie Syntax einer Sprache mit Hilfe der Backus-Naur-Form formal zu beschreiben, ist inzwischen bei Entwurf und Dokumentation von Programmiersprachen allgemein üblich.

[Bearbeiten] Siehe auch

[Bearbeiten] Weblinks

Andere Sprachen
THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu