ppt

Werbung
Niklaus Wirth: Prinzipien der
Programmiersprachen und
PASCAL
Seminar Geschichte der Informatik
Christoph Grün
Überblick
Leben und Arbeit Nikolaus Wirths in der
USA und der Schweiz
 Übersicht über Generationen von
Programmiersprachen
 Wirths Verdienste an höheren
Programmiersprachen

2
Nikolaus Wirth




Geboren 1934 in Winterthur
in der Schweiz
Interesse an Technik,
insbesondere
Modellflugzeugen
Gymnasium
Interesse an Elektronik,
Funkfernsteuerungen im
Modellbau
3
1954-58 Studium der Elektrotechnik an
der ETH Zürich, Diplom 1959
 1959-60 Assistenzstelle Universität
Quebec in Kanada
 1960-63 Doktorand an der Universität
Berkeley als Stipendiat
 Mitarbeit in einer Gruppe an dem Bau
erster Compiler

4
ALGOL 60 Report




Erste mathematisch klare und eindeutige
Definition von Programmiernotation
13 Wissenschaftler aus aller Welt, darunter der
Holländer v. Wiingaarden
Idee von mehr Ordnung in
Programmiersprachen, Aufbau von wenigen,
allgemeingültigen Konzepten
Dissertationsthema „Generalized Algol“
5
1963-67 Assistant Professor for Computer
Science an der Stanford University
 Weitere Arbeiten in Richtung seiner
Doktorarbeit
 Mitarbeit im Komitee für ALGOL 68
 1967-68 Urlaubssemester an der
Universität Zürich

6
Rückkehr in die Schweiz
Seit 1968 Professor für
Computerwissenschaften an der ETH
Zürich
 1970 entwickelt er PASCAL
 1980 Informatik eigenständiger
Studiengang auf Druck der Industrie

7
1976-77 Urlaubssemester bei Firma Xerox
in Palo Alto
 Bau von unabhängigen
Arbeitsplatzrechnern
 In der Schweiz Bau eines eigenen
Rechners
 Schaffung weiterer Programmiersprachen

8









1984 Turing Award
1988 IEEE Computer Society, Computer Pioneer Award
1989 IBM Europe Science and Technology Prize 1988
1992 Member, Swiss Academy of Engineering
1994 Foreign Associate, US Academy of Engieering
1996 Orden Pour le merite
1999 ACM SIGSOFT, Outstanding Research Award in
Software Engineering
1999 Leonardo da Vinci Medal. Societe Europeenne
pour la Formation des Ingenieurs (SEFI)
Zahlreiche Ehrendoktorate
9
Generationen von
Programmiersprachen
1.
2.
3.
Maschinensprache
Assembler
Höhere Sprachen:
problemorientierte Sprachen (Fortran,
Basic, Pascal)
objektorientierte Sprachen (Prolog, Lisp,
C++) oder lösungsorientierte (SQL)
10
Maschinensprache
Assembler
z.B. Pascal
0000
0001
0000
0001
...
0010
0010
0010
0100
0011
0001
CON 5
STR R1
CON 8
STR R2
...
LD R2
LD R1
LD R1
MUL
ADD
STR R0
r1:=5;
r2:=8;
....
r0:=r1*r1+r2;
0101
0001
1000
0010
0010
0001
0001
0000
0000
0000
11
12
Maschinensprache
Assembler
z.B. Pascal
0000
0001
0000
0001
...
0010
0010
0010
0100
0011
0001
CON 5
STR R1
CON 8
STR R2
...
LD R2
LD R1
LD R1
MUL
ADD
STR R0
r1:=5;
r2:=8;
....
r0:=r1*r1+r2;
0101
0001
1000
0010
0010
0001
0001
0000
0000
0000
Assembler
Compiler/Interpreter
13
Arten von Übersetzern
 Interpreter
Zeilenweise, immer neu übersetzte
Ausführung des Programms
 Compiler
Übersetzung in Selbstausführende Datei,
die immer im Maschinencode vorliegt
14
Höhere Programmiersprachen

FORTRAN – Formula Translator
1954 für wissenschaftliche Rechnungen
eingeführt
keine genaue Grammatik
verwirrend durch GOTO-Sprünge und
Zeilennummern
15

COBOL
1960 von John Backus vorgestellt
Verarbeitung von Daten, Texten und Buchungen
Textlastig
Ebenfalls keine strukturierte Programmierung
Millenium Bug
16

ALGOL 60
Urahn der prozeduralen
Programmiersprachen
Einheitliche Notation zur Formulierung
von Algorithmen
klar strukturierte Syntax, Konzept von
SchleIFen und Blöcken
17
IF a < 0 THEN U+V ELSE IF a * b < 17 THEN U/V ELSE IF k <> y THEN V/U
ELSE 0
a * SIN(omega * t)
IF q THEN n-1 ELSE n
BEGIN
FILE F (KIND=REMOTE);
EBCDIC ARRAY E [0:11];
REPLACE E BY „HELLO WORLD!“;
WHILE TRUE DO
BEGIN
WRITE (F,*,E);
END;
END.
18

PASCAL
Übernahme elementarer Konzepte ALGOLS
Strenge Syntax
Eigene Datentypen, Mengen und Verbundtypen
Zeiger zur dynamischen Variablenerzeugung
Stapelmaschine mit lokalen Variablen
Vollwertige Stringroutinen
Ausgefeiltes Blockkonzept
19

Pascal weiter
Gute Lesbarkeit - Lehrsprache
Sehr erfolgreich mit etlichen Ablegern
Heute noch zu finden in Borland Delphi als
Objekt-Pascal
Nachteile: Mangelnde Modularisierung zur
Erstellung größerer Projekte
20

Modula – 2
1982 von Wirth vorgestellt
Neue Sprache mit Modulkonzept
(information hiding)
und getrennter Übersetzung von Modulen
Genaue Schnittstellendefinitionen
Wenig erfolgreich wegen Erweiterung Turbo
Pascals durch Units
21

Oberon
1986 von Wirth vorgestellt
Teil des Oberon-Betriebssystems
Einführung von Typerweiterung als
objektorientierter Ansatz
Nutzung in der Lehre
22
Ordnung in die Programmierung
Von der Idee über die
Programmiersprache zum Rechner
 Vom Rechner über die
Programmiersprache zum Verständnis der
Idee

23
„Heute sehe ich mit Schrecken, wie viele
Studenten bei uns Elektrotechnik
studieren, die noch nie etwas selbst
gebastelt haben. Genauso ist es in der
Informatik: Viele haben noch nie selber ein
Programm geschrieben.“
24
Vielen Dank für Ihre
Aufmerksamkeit
Herunterladen