160 likes | 420 Views
ALGOL. ALGOrithmic Language. Überblick. Geschichtlicher Überblick Peter Naur / John Backus ALGOL 60 Sprachentwurf Eigenschaften Beispiel ALGOL 68 Sprachentwurf Eigenschaften Beispiel Vorführung von ALGOL 68. Entwicklung (I).
E N D
ALGOL ALGOrithmic Language
Überblick • Geschichtlicher Überblick • Peter Naur / John Backus • ALGOL 60 • Sprachentwurf • Eigenschaften • Beispiel • ALGOL 68 • Sprachentwurf • Eigenschaften • Beispiel • Vorführung von ALGOL 68
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
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)
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
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
ALGOL 60 • wissenschaftlich (für numerische Zwecke) • von kommerziellen Interesse unabhängig • einfach durch weitgehende Freiheit von Restriktionen
ALGOL 60 - Sprachentwurf • saubere Definition von Spracheigenschaften • Definition der Syntax mit Hilfe der Backus-Naur-Form • Laufzeitprüfungen wurde vorgeschrieben
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
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'
ALGOL 68 • Neuentwurf basierend auf den Erfahrungen mit ALGOL 60 • Ziele: • Vollständigkeit und Klarheit der Beschreibung • Orthogonalität des Entwurfs • Sicherheit • Effektivität
ALGOL 68 - Sprachentwurf • Neuartiges Beschreibungsverfahren entwickelt • 2-stufige Grammatik, auch van-Wijngaarden-Grammatik genannt
ALGOL 68 - Eigenschaften • Referenzen • Möglichkeit zur Definition von Strukturen und anderen Datentypen • Definition von Ein- und Ausgaben
ALGOL 68 - Beispiel Türme von Hanoi begin 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
Quellen Web: http://de.wikipedia.org/wiki/Algol_60 http://de.wikipedia.org/wiki/Algol_68 http://www.bookrags.com/sciences/computerscience/algol-60-wcs.html http://www.bookrags.com/sciences/computerscience/algol-68-wcs.html http://www.masswerk.at/algol60/ http://vestein.arb-phys.uni-dortmund.de/~wb/RR/rrTOC.html http://de.wikipedia.org/wiki/Peter_Naur http://www.thocp.net/biographies/backus_john.htm http://www.heise.de/newsticker/meldung/53881 http://de.wikipedia.org/wiki/John_Backus Compiler / Interpreter: http://www.xs4all.nl/~jmvdveer/algol68g-mk8/doc/introduction.html http://www.angelfire.com/biz/rhaminisys/algol60.html Buch: Bericht über die algorithmische Sprache ALGOL 68 – Akademie-Verlag Berlin