16
ALGOL ALGOrithmic Language

ALGOL ALGOrithmic Language. Überblick Geschichtlicher Überblick Peter Naur / John Backus ALGOL 60 Sprachentwurf Eigenschaften Beispiel ALGOL 68 Sprachentwurf

Embed Size (px)

Citation preview

Page 1: ALGOL ALGOrithmic Language. Überblick Geschichtlicher Überblick Peter Naur / John Backus ALGOL 60 Sprachentwurf Eigenschaften Beispiel ALGOL 68 Sprachentwurf

ALGOL

ALGOrithmic Language

Page 2: ALGOL ALGOrithmic Language. Überblick Geschichtlicher Überblick Peter Naur / John Backus ALGOL 60 Sprachentwurf Eigenschaften Beispiel ALGOL 68 Sprachentwurf

Überblick Geschichtlicher Überblick Peter Naur / John Backus ALGOL 60

Sprachentwurf Eigenschaften Beispiel

ALGOL 68 Sprachentwurf Eigenschaften Beispiel

Vorführung von ALGOL 68

Page 3: ALGOL ALGOrithmic Language. Überblick Geschichtlicher Überblick Peter Naur / John Backus ALGOL 60 Sprachentwurf Eigenschaften Beispiel ALGOL 68 Sprachentwurf

Entwicklung (I) 1958-1963 unter der Führung der Association for

Computer 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 anderen John Backus, Friedrich Ludwig Bauer, John McCarthy, Peter Naur, Alan J. Perlis, Heinz Rutishauser und Klaus Samuelson

Diskussionsentwurf als Algol 58 zitiert

Page 4: ALGOL ALGOrithmic Language. Überblick Geschichtlicher Überblick Peter Naur / John Backus ALGOL 60 Sprachentwurf Eigenschaften Beispiel ALGOL 68 Sprachentwurf

Entwicklung (II) ALGOL 68 ist Neuentwurf basierend auf

den Erfahrungen von ALGOL 60

Definition wurde 1969 erstmals als Report on the Algorithmic Language ALGOL 68 veröffentlicht und 1975 im Revised Report revidiert (überarbeitet)

Weitere Entwicklungen aus ALGOL 60 Simula 67, ALGOL-W (Pascal)

Page 5: ALGOL ALGOrithmic Language. Überblick Geschichtlicher Überblick Peter Naur / John Backus ALGOL 60 Sprachentwurf Eigenschaften Beispiel ALGOL 68 Sprachentwurf
Page 6: ALGOL ALGOrithmic Language. Überblick Geschichtlicher Überblick Peter Naur / John Backus ALGOL 60 Sprachentwurf Eigenschaften Beispiel ALGOL 68 Sprachentwurf

Peter Naur Geboren am 25. Oktober 1928 in

Frederiksberg bei Kopenhagen

1947 – 1949 Astronomie - Studium an der Universität Kopenhagen

1953 – 1959 wissenschaftlicher Assistent an Universität Kopenhagen

1957 Doktortitel in Astronomie

Begegnung mit Computer -> Wechsel der Fachrichtung

Seit 1969 Professor für Informatik an der Universität Kopenhagen

Page 7: ALGOL ALGOrithmic Language. Überblick Geschichtlicher Überblick Peter Naur / John Backus ALGOL 60 Sprachentwurf Eigenschaften Beispiel ALGOL 68 Sprachentwurf

John Backus Geboren am 3. Dezember 1924

in Philadelphia

Einberufung zur Armee, abkommandiert zum Studium der Medizin

Studierte später Mathematik

1949 Einstellung bei IBM als Programmierer

1954 Entwicklung von FORTRAN

1959 Entwicklung der BNF in Zusammenarbeit mit Peter Naur

Page 8: ALGOL ALGOrithmic Language. Überblick Geschichtlicher Überblick Peter Naur / John Backus ALGOL 60 Sprachentwurf Eigenschaften Beispiel ALGOL 68 Sprachentwurf

ALGOL 60

wissenschaftlich (für numerische Zwecke)

von kommerziellen Interesse unabhängig

einfach durch weitgehende Freiheit von Restriktionen

Page 9: ALGOL ALGOrithmic Language. Überblick Geschichtlicher Überblick Peter Naur / John Backus ALGOL 60 Sprachentwurf Eigenschaften Beispiel ALGOL 68 Sprachentwurf

ALGOL 60 - Sprachentwurf

saubere Definition von Spracheigenschaften

Definition der Syntax mit Hilfe der Backus-Naur-Form

Laufzeitprüfungen wurde vorgeschrieben

Page 10: ALGOL ALGOrithmic Language. Überblick Geschichtlicher Überblick Peter Naur / John Backus ALGOL 60 Sprachentwurf Eigenschaften Beispiel ALGOL 68 Sprachentwurf

ALGOL 60 - Eigenschaften Einführung von Blockstruktur und

der Sichtbarkeit von Variablen 2 Möglichkeiten Parameter an

Funktionen und Prozeduren zu übergeben Wertparameter Namensparameter

ermöglicht Rekursion

Page 11: ALGOL ALGOrithmic Language. Überblick Geschichtlicher Überblick Peter Naur / John Backus ALGOL 60 Sprachentwurf Eigenschaften Beispiel ALGOL 68 Sprachentwurf

ALGOL 60 - Beispiel'begin'

'comment' create some random numbers, print them and print the average. ;

'integer' NN; NN := 20; 'begin'

'integer' i; 'real' sum; vprint ("random numbers:"); sum := 0; 'for' i := 1 'step' 1 'until' NN 'do' 'begin'

'real' x; x := rand; sum := sum + x; vprint (i, x)

'end'; vprint ("average is:", sum / NN)

'end' 'end'

Page 12: ALGOL ALGOrithmic Language. Überblick Geschichtlicher Überblick Peter Naur / John Backus ALGOL 60 Sprachentwurf Eigenschaften Beispiel ALGOL 68 Sprachentwurf

ALGOL 68 Neuentwurf basierend auf den

Erfahrungen mit ALGOL 60 Ziele:

Vollständigkeit und Klarheit der Beschreibung

Orthogonalität des Entwurfs Sicherheit Effektivität

Page 13: ALGOL ALGOrithmic Language. Überblick Geschichtlicher Überblick Peter Naur / John Backus ALGOL 60 Sprachentwurf Eigenschaften Beispiel ALGOL 68 Sprachentwurf

ALGOL 68 - Sprachentwurf

Neuartiges Beschreibungsverfahren entwickelt

2-stufige Grammatik, auch van-Wijngaarden-Grammatik genannt

Page 14: ALGOL ALGOrithmic Language. Überblick Geschichtlicher Überblick Peter Naur / John Backus ALGOL 60 Sprachentwurf Eigenschaften Beispiel ALGOL 68 Sprachentwurf

ALGOL 68 - Eigenschaften

Referenzen Möglichkeit zur Definition von

Strukturen und anderen Datentypen

Definition von Ein- und Ausgaben

Page 15: ALGOL ALGOrithmic Language. Überblick Geschichtlicher Überblick Peter Naur / John Backus ALGOL 60 Sprachentwurf Eigenschaften Beispiel ALGOL 68 Sprachentwurf

ALGOL 68 - BeispielTürme von Hanoibegin

proc p = (int me, de, ma) :(ma > 0 | p (me, 6 — me — de, ma — 1);

out (stand out, (me, de, ma));c Transport des Stückes 'ma' von Platz 'me' zu Platz 'de' c

p (6 — me — de, de, ma — 1));for k to 8 do (outf (stand out, $l"k.=."dl,n ((2 t k + 15) ± 16)(2(2(4(3(d)x)x)x)l)$,k);p (1, 2, k,))

end

Page 16: ALGOL ALGOrithmic Language. Überblick Geschichtlicher Überblick Peter Naur / John Backus ALGOL 60 Sprachentwurf Eigenschaften Beispiel ALGOL 68 Sprachentwurf

QuellenWeb:http://de.wikipedia.org/wiki/Algol_60http://de.wikipedia.org/wiki/Algol_68http://www.bookrags.com/sciences/computerscience/algol-60-wcs.htmlhttp://www.bookrags.com/sciences/computerscience/algol-68-wcs.htmlhttp://www.masswerk.at/algol60/http://vestein.arb-phys.uni-dortmund.de/~wb/RR/rrTOC.htmlhttp://de.wikipedia.org/wiki/Peter_Naurhttp://www.thocp.net/biographies/backus_john.htmhttp://www.heise.de/newsticker/meldung/53881http://de.wikipedia.org/wiki/John_Backus

Compiler / Interpreter:http://www.xs4all.nl/~jmvdveer/algol68g-mk8/doc/introduction.htmlhttp://www.angelfire.com/biz/rhaminisys/algol60.html

Buch:Bericht über die algorithmische Sprache ALGOL 68 – Akademie-Verlag Berlin