Niklaus Wirth Prinzipien der Programmiersprachen und PASCAL Seminar

  • Slides: 25
Download presentation
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 / 20

Überblick Leben und Arbeit Nikolaus Wirths in der USA und der Schweiz n Übersicht

Überblick Leben und Arbeit Nikolaus Wirths in der USA und der Schweiz n Übersicht über Generationen von Programmiersprachen n Wirths Verdienste an höheren Programmiersprachen n 2

Nikolaus Wirth n n Geboren 1934 in Winterthur in der Schweiz Interesse an Technik,

Nikolaus Wirth n n 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 n 1959 -60

1954 -58 Studium der Elektrotechnik an der ETH Zürich, Diplom 1959 n 1959 -60 Assistenzstelle Universität Quebec in Kanada n 1960 -63 Doktorand an der Universität Berkeley als Stipendiat n Mitarbeit in einer Gruppe an dem Bau erster Compiler n 4

ALGOL 60 Report n n Erste mathematisch klare und eindeutige Definition von Programmiernotation 13

ALGOL 60 Report n n 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 n Weitere Arbeiten

1963 -67 Assistant Professor for Computer Science an der Stanford University n Weitere Arbeiten in Richtung seiner Doktorarbeit n Mitarbeit im Komitee für ALGOL 68 n 1967 -68 Urlaubssemester an der Universität Zürich n 6

Rückkehr in die Schweiz Seit 1968 Professor für Computerwissenschaften an der ETH Zürich n

Rückkehr in die Schweiz Seit 1968 Professor für Computerwissenschaften an der ETH Zürich n 1970 entwickelt er PASCAL n 1980 Informatik eigenständiger Studiengang auf Druck der Industrie n 7

1976 -77 Urlaubssemester bei Firma Xerox in Palo Alto n Bau von unabhängigen Arbeitsplatzrechnern

1976 -77 Urlaubssemester bei Firma Xerox in Palo Alto n Bau von unabhängigen Arbeitsplatzrechnern n In der Schweiz Bau eines eigenen Rechners n Schaffung weiterer Programmiersprachen n 8

n n n n n 1984 Turing Award 1988 IEEE Computer Society, Computer Pioneer

n n n n n 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,

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. . . 0010 0100 0011 0001 CON

Maschinensprache Assembler z. B. Pascal 0000 0001. . . 0010 0100 0011 0001 CON 5 STR R 1 CON 8 STR R 2. . . LD R 2 LD R 1 MUL ADD STR R 0 r 1: =5; r 2: =8; . . r 0: =r 1*r 1+r 2; 0101 0001 1000 0010 0001 0000 11

12

12

Maschinensprache Assembler z. B. Pascal 0000 0001. . . 0010 0100 0011 0001 CON

Maschinensprache Assembler z. B. Pascal 0000 0001. . . 0010 0100 0011 0001 CON 5 STR R 1 CON 8 STR R 2. . . LD R 2 LD R 1 MUL ADD STR R 0 r 1: =5; r 2: =8; . . r 0: =r 1*r 1+r 2; 0101 0001 1000 0010 0001 0000 Assembler Compiler/Interpreter 13

Arten von Übersetzern n Interpreter Zeilenweise, immer neu übersetzte Ausführung des Programms n Compiler

Arten von Übersetzern n Interpreter Zeilenweise, immer neu übersetzte Ausführung des Programms n Compiler Übersetzung in Selbstausführende Datei, die immer im Maschinencode vorliegt 14

Höhere Programmiersprachen n FORTRAN – Formula Translator 1954 für wissenschaftliche Rechnungen eingeführt keine genaue

Höhere Programmiersprachen n FORTRAN – Formula Translator 1954 für wissenschaftliche Rechnungen eingeführt keine genaue Grammatik verwirrend durch GOTO-Sprünge und Zeilennummern 15

n COBOL 1960 von John Backus vorgestellt Verarbeitung von Daten, Texten und Buchungen Textlastig

n COBOL 1960 von John Backus vorgestellt Verarbeitung von Daten, Texten und Buchungen Textlastig Ebenfalls keine strukturierte Programmierung Millenium Bug 16

n ALGOL 60 Urahn der prozeduralen Programmiersprachen Einheitliche Notation zur Formulierung von Algorithmen klar

n ALGOL 60 Urahn der prozeduralen Programmiersprachen Einheitliche Notation zur Formulierung von Algorithmen klar strukturierte Syntax, Konzept von Schle. IFen und Blöcken 17

IF a < 0 THEN U+V ELSE IF a * b < 17 THEN

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. 18

n PASCAL Übernahme elementarer Konzepte ALGOLS Strenge Syntax Eigene Datentypen, Mengen und Verbundtypen Zeiger

n 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

n Pascal weiter Gute Lesbarkeit - Lehrsprache Sehr erfolgreich mit etlichen Ablegern Heute noch

n 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

n Modula – 2 1982 von Wirth vorgestellt Neue Sprache mit Modulkonzept (information hiding)

n 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

n Oberon 1986 von Wirth vorgestellt Teil des Oberon-Betriebssystems Einführung von Typerweiterung als objektorientierter

n 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 n Vom

Ordnung in die Programmierung Von der Idee über die Programmiersprache zum Rechner n Vom Rechner über die Programmiersprache zum Verständnis der Idee n 23

„Heute sehe ich mit Schrecken, wie viele Studenten bei uns Elektrotechnik studieren, die noch

„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 / 20

Vielen Dank für Ihre Aufmerksamkeit / 20