Niklaus Wirth: Prinzipien der Programmiersprachen und PASCAL

Slides:



Advertisements
Ähnliche Präsentationen
Prüfungspläne Bachelor-Thesis
Advertisements

Programmiersprachen Eine allgemeine Übersicht der gängigsten Sprachen und ihrer Einteilung Gabriel Bretschner IG08 Fach: Informatiksysteme Einleitung Definition.
Das Studium der Informatik
ALGOL ALGOrithmic Language.
Einführung in die Programmierung Zusammenfassung
Vom Steinzeitmonitor bis
10. Grundlagen imperativer Programmiersprachen
Puck eine visuelle Programmiersprache für die Schule
Lösung 7.1 Syntax und Semantik
Grace Hopper und der erste Compiler
Einführung in Berechenbarkeit und Formale Sprachen
Gliederung des Inhalts
Java: Grundlagen der Sprache
Strukturierte Programmierung
Entwicklung der Programmiersprachen
Modularisierung der Bachelor-Studiengänge im Studiendekanat E 9. Jan Studiengangskoordinatoren und wissenschaftliche Mitarbeiter des Studiendekanates.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Sommersemester 2003 Lars Bernard
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
GESCHICHTE DER INFORMATIK
Proseminar SS Evaluation der Programmiersprache PASCAL AN ASSESSMENT OF THE PROGRAMMING LANGUAGE PASCAL Autor: Niklaus Wirth Bearbeitung:
Zhaohan Chen SS061 SIMULA-an Algol Based Simulation Language geschrieben von: Zhaohan Chen Betreuer: Prof. Dr. Rainer Manthey.
Vorlesung Compilertechnik Sommersemester 2008
Konzepte von Programmiersprachen
MSDN Webcast: VB. NET für Einsteiger und Umsteiger Einführung in VB
Einführung Inhalte dieses Kurses Generationen der Programmiersprachen
INHALT INHALT Inhalt Delphi IDE ObjectPascal Hello World! Delphi IDE
? Was ist Informatik? Was ist Informatik? Alexander Lange
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Dateien Datei = File (engl.) Mögliche Inhalte einer Datei
Entwicklung der Programmiersprachen
Einführung in die Programmierung
Einführung Real Programmers vs. Quiche Eaters ; Die Mersennesche Vermutung, Editor, Compiler, Computer, Betriebssystem, Plattform, Das erste C++-Programm.
Willkommen... Studentinnen und Studenten der Studiengänge Umweltnaturwissenschaften Erdwissenschaften Agrarwissenschaften zur.
Software-Entwicklung & Programmiersprachen
profil des vortragenden gustav pomberger
Informatik Objekte und Klassen 1. Objektorientiertes Modellieren und Programmieren 1.1 Objekte und Klassen.
Computerorientierte Physik VORLESUNG und Übungen Vorlesung Zeit: Mo., – Uhr Ort: Hörsaal 5.01, Institut für Physik, Universitätsplatz 5, A-8010.
Einführung Die Mersenne’sche Vermutung, Editor, Compiler, Computer, Betriebssystem, Plattform, Das erste C++-Programm.
Historische Entwicklung und ihre Einteilung
Konzept einer Programmiersprache!
Programmieren in C Einführung
Programiersprache Mustafa SÖYLEMEZ e
Interpreter & Compiler
Programmiersprachen Proseminar Grundlagen wissenschaftlichen Arbeitens
Informatik Otto-Hahn-Gymnasium im Wahlpflichtbereich II
Grundlagen Wissenschaftlichen Arbeitens Hilal Tekoglu
Algorithmen und Datenstrukturen Übungsmodul 1
MODULA-2.
Starten der Entwicklungsumgebung (IDE)
Agenda für heute, 22. Juni, 2006 Direkte FilezugriffeDirekte Filezugriffe Datentypen: Mengen Individualisierbare Datentypen.
Willkommen... Studentinnen und Studenten der Studiengänge Umweltnaturwissenschaften Erdwissenschaften Agrarwissenschaften zur.
Agenda für heute, 20. April, 2006 Wiederholte ProgrammausführungWiederholte Programmausführung Algorithmische Grundlagen Bedingungen zum Abbruch von Programmschleifen.
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
Agenda für heute, 14. April, 2005 Wiederholte ProgrammausführungWiederholte Programmausführung Algorithmische Grundlagen Bedingungen zum Abbruch von Programmschleifen.
Systemsoftware und Betriebssysteme
Programmieren mit BASIC
Algorithmen und Datenstrukturen 1 SS 2002
Agenda für heute, 21. April, 2005 Interaktion mit Pascal-ProgrammenInteraktion mit Pascal-Programmen Dateneingabe Programmsteuerung Debugging Datentypen:
Informatik Im WPI – Bereich.
Lernlandkarte OOP (ObjektOrientiertes Programmieren)
The Programming Language Pascal
Extended Pascal Erweiterung von Pascal shadi Behzadipour shadi Shadi behzadipour.
Programmiersprache PASCAL
Objektorientierte (OO) Programmierung
Die Programmiersprache Ruby Seminarvortrag von Lia Schulze Dephoff 1.
Programmieren und Problemlösen
Datentypen: integer, char, string, boolean
GRUNDLAGEN WISSENSCHAFTLICHEN ARBEITENS MODULA-2 SONAY SUBAYAZ
The Programming Language Pascal
 Präsentation transkript:

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

Nikolaus Wirth Geboren 1934 in Winterthur in der Schweiz Interesse an Technik, insbesondere Modellflugzeugen Gymnasium Interesse an Elektronik, Funkfernsteuerungen im Modellbau

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

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“

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

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

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

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

Generationen von Programmiersprachen Maschinensprache Assembler Höhere Sprachen: problemorientierte Sprachen (Fortran, Basic, Pascal) objektorientierte Sprachen (Prolog, Lisp, C++) oder lösungsorientierte (SQL)

Maschinensprache 0000 0101 0001 0001 0000 1000 0001 0010 ... 0010 0010 0010 0001 0100 0000 0011 0000 0001 0000 Assembler CON 5 STR R1 CON 8 STR R2 ... LD R2 LD R1 MUL ADD STR R0 z.B. Pascal r1:=5; r2:=8; .... r0:=r1*r1+r2;

Maschinensprache 0000 0101 0001 0001 0000 1000 0001 0010 ... 0010 0010 0010 0001 0100 0000 0011 0000 0001 0000 Assembler CON 5 STR R1 CON 8 STR R2 ... LD R2 LD R1 MUL ADD STR R0 z.B. Pascal r1:=5; r2:=8; .... r0:=r1*r1+r2; Assembler Compiler/Interpreter

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

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

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

Urahn der prozeduralen Programmiersprachen ALGOL 60 Urahn der prozeduralen Programmiersprachen Einheitliche Notation zur Formulierung von Algorithmen klar strukturierte Syntax, Konzept von SchleIFen und Blöcken

IF a < 0 THEN U+V ELSE IF a 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 WRITE (F,*,E); END; END.

Übernahme elementarer Konzepte ALGOLS PASCAL Übernahme elementarer Konzepte ALGOLS Strenge Syntax Eigene Datentypen, Mengen und Verbundtypen Zeiger zur dynamischen Variablenerzeugung Stapelmaschine mit lokalen Variablen Vollwertige Stringroutinen Ausgefeiltes Blockkonzept

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

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

Oberon 1986 von Wirth vorgestellt Teil des Oberon-Betriebssystems Einführung von Typerweiterung als objektorientierter Ansatz Nutzung in der Lehre

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

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

Vielen Dank für Ihre Aufmerksamkeit