Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik...

25
Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün

Transcript of Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik...

Page 1: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

Niklaus Wirth: Prinzipien der Programmiersprachen und

PASCAL Seminar Geschichte der Informatik

Christoph Grün

Page 2: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

2

Überblick

Leben und Arbeit Nikolaus Wirths in der USA und der Schweiz

Übersicht über Generationen von Programmiersprachen

Wirths Verdienste an höheren Programmiersprachen

Page 3: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

3

Nikolaus Wirth Geboren 1934 in Winterthur

in der Schweiz Interesse an Technik,

insbesondere Modellflugzeugen

Gymnasium Interesse an Elektronik,

Funkfernsteuerungen im Modellbau

Page 4: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

4

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

Page 5: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

5

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“

Page 6: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

6

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

Page 7: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

7

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

Page 8: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

8

1976-77 Urlaubssemester bei Firma Xerox in Palo Alto

Bau von unabhängigen Arbeitsplatzrechnern

In der Schweiz Bau eines eigenen Rechners

Schaffung weiterer Programmiersprachen

Page 9: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

9

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

Page 10: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

10

Generationen von Programmiersprachen

1. Maschinensprache

2. Assembler

3. Höhere Sprachen:problemorientierte Sprachen (Fortran, Basic, Pascal)objektorientierte Sprachen (Prolog, Lisp, C++) oder lösungsorientierte (SQL)

Page 11: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

11

Maschinensprache

0000 0101

0001 0001

0000 1000

0001 0010

...

0010 0010

0010 0001

0010 0001

0100 0000

0011 0000

0001 0000

z.B. Pascal

r1:=5;

r2:=8;

....

r0:=r1*r1+r2;

Assembler

CON 5

STR R1

CON 8

STR R2

...

LD R2

LD R1

LD R1

MUL

ADD

STR R0

Page 12: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

12

Page 13: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

13

Maschinensprache

0000 0101

0001 0001

0000 1000

0001 0010

...

0010 0010

0010 0001

0010 0001

0100 0000

0011 0000

0001 0000

z.B. Pascal

r1:=5;

r2:=8;

....

r0:=r1*r1+r2;

Assembler

CON 5

STR R1

CON 8

STR R2

...

LD R2

LD R1

LD R1

MUL

ADD

STR R0

Assembler Compiler/Interpreter

Page 14: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

14

Arten von Übersetzern

Interpreter

Zeilenweise, immer neu übersetzte Ausführung des Programms

Compiler

Übersetzung in Selbstausführende Datei, die immer im Maschinencode vorliegt

Page 15: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

15

Höhere Programmiersprachen

FORTRAN – Formula Translator

1954 für wissenschaftliche Rechnungen eingeführt

keine genaue Grammatik

verwirrend durch GOTO-Sprünge und Zeilennummern

Page 16: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

16

COBOL1960 von John Backus vorgestellt

Verarbeitung von Daten, Texten und Buchungen

Textlastig

Ebenfalls keine strukturierte Programmierung

Millenium Bug

Page 17: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

17

ALGOL 60

Urahn der prozeduralen Programmiersprachen

Einheitliche Notation zur Formulierung von Algorithmen

klar strukturierte Syntax, Konzept von SchleIFen und Blöcken

Page 18: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

18

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.

Page 19: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

19

PASCAL

Übernahme elementarer Konzepte ALGOLS

Strenge Syntax

Eigene Datentypen, Mengen und Verbundtypen

Zeiger zur dynamischen Variablenerzeugung

Stapelmaschine mit lokalen Variablen

Vollwertige Stringroutinen

Ausgefeiltes Blockkonzept

Page 20: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

20

Pascal weiterGute 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

Page 21: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

21

Modula – 21982 von Wirth vorgestellt

Neue Sprache mit Modulkonzept

(information hiding)

und getrennter Übersetzung von Modulen

Genaue Schnittstellendefinitionen

Wenig erfolgreich wegen Erweiterung Turbo Pascals durch Units

Page 22: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

22

Oberon1986 von Wirth vorgestellt

Teil des Oberon-Betriebssystems

Einführung von Typerweiterung alsobjektorientierter Ansatz

Nutzung in der Lehre

Page 23: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

23

Ordnung in die Programmierung

Von der Idee über die Programmiersprache zum Rechner

Vom Rechner über die Programmiersprache zum Verständnis der Idee

Page 24: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

24

„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.“

Page 25: Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL Seminar Geschichte der Informatik Christoph Grün.

Vielen Dank für Ihre Aufmerksamkeit