Berühmte Informatiker

Ähnliche Dokumente
Java für Anfänger Teil 2: Java-Syntax. Programmierkurs Manfred Jackel

L A T E X für Anfänger

Java für Anfänger Teil 2: Java-Syntax. Programmierkurs Manfred Jackel

4.Grundsätzliche Programmentwicklungsmethoden

METAPOST. mit L A TEX zeichnen. Carl Wenninger. Linux Info Tag Typeset by FoilTEX

Interpreter - Gliederung

1 Syntax von Programmiersprachen

Die Geschichte von C

Projekt Systementwicklung

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Kapitel 2. Methoden zur Beschreibung von Syntax

Einführung in die Informatik 1

Sudoku. Warum 6? Warum 6?

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

Grundlagen der Informatik I (Studiengang Medieninformatik)

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

The English Tenses Die englischen Zeitformen

Organisatorisches/Einstieg

Hallo Welt für Fortgeschrittene

DSLs mit Xtext entwerfen , A. Arnold

Programmieren was ist das genau?

Kapitel 11: Wiederholung und Zusammenfassung

Programmieren. Hexenwerk oder Zauberspuk? Kinderuniversität Mittwoch, 16. März 2016 Kinder-Akademie Fulda & Hochschule Fulda

Seminarfragebogen Englisch-Schulung Basic-Level

ShopBot, ein Software-Agent für das Internet

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen

Syntaxanalyse Ausgangspunkt und Ziel

Algorithmen und Programmieren II Einführung in Python

Einführung in die Programmiertechnik

Quellen: Towards a Human Computer InteractionPerspective. Übersicht. Warum visuelle Sprachen? Begriffsdefinitionen: Hinderungsgründe bisher:

Pionierinnen in der Informatik Augusta Ada Byron Lovelace ( )

Vorlesung Programmieren

SWE1 / Übung 2 ( )

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 5. Asymptotische Laufzeitkomplexität Definition Regeln Beispiele

Flirt English Dialogue Transcript Episode Eight : On The Team

Modellierung und Programmierung 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen

Das Studium im Fach Informatik

7. Formale Sprachen und Grammatiken

Eine historisch-philosophierende Einführung in TEX und LATEX. Beni Ruef

Formale Sprachen. Eine Einführung. Tim Lethen Düsseldorf Version II (04-06)

Bedeutende Frauen der Naturwissenschaften. Frau des Monats Dezember

Europe Job Bank Schülerumfrage. Projektpartner. Euro-Schulen Halle

VBA-Programmierung: Zusammenfassung

Ausarbeitung des Interpreter Referats


Die Programmiersprache C Eine Einführung

Diplomarbeit Antrittsvortrag

Informatik I. Grundlagen der systematischen Programmierung. Peter Thiemann WS 2008/09. Universität Freiburg, Germany

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Äquivalente Grammatiken / attributierte Grammatik

Formale Sprachen und Automaten

Ruby. Programmieren mit Zucker. Thomas Kühn

Grundlagen der Programmierung in C Funktionen

Die Renaissance von Unified Communication in der Cloud. Daniel Jonathan Valik UC, Cloud and Collaboration

Informationsveranstaltung BSc zweites und drittes Studienjahr. Denise Spicher Judith Zimmermann

Problemorientierte Programmiersprachen Nachteile von Programmen in Maschinensprache sehr aufwendig bei komplexeren Aufgabenstellungen fehleranfällig

Vorlesung C-Kurs 9:15-10:45 Mathe 11:15-12:45 1. Woche Hörsaal 1 2. Woche Hörsaal 7

Informatik ist viel mehr als Delphi-Programmierung!

Abstrakte Algorithmen und Sprachkonzepte

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Algorithmen und Datenstrukturen CS1017

Mining top-k frequent itemsets from data streams

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Step-by-Step-Anleitung einer Onlinebewerbung an einer Partnerhochschule der HFU

FEMAG-Anwendertreffen 18. November 2009

Kapitel 5: Statische Analyse

Zufallszahlen in AntBrain

Compiler, Übersetzer. Allgemeine Erklärung / Definition

Inequality Utilitarian and Capabilities Perspectives (and what they may imply for public health)

Einführung in die Programmierung

2. Datenbank-Programmierung

Zeichenketten. Hauptseminar Hallo Welt! für Fortgeschrittene. SS Mai 2006 Tobias Hager.

Algorithmen und Datenstrukturen Laufzeitabschätzung

Pragmatik von Programmiersprachen

Zeichnen von Graphen. graph drawing

Fragen für die Klausuren

Einführung in die Informatik I

Zwischencodeerzeugung Compiler II

Mächtigkeit von WHILE-Programmen

Syntax von LOOP-Programmen

Satzung vom , zur Änderung der Studienordnung vom , gültig ab SoSe 2013

Einführung Beispiele Fazit Links. OpenNLP. Nico Beierle, Irina Glushanok

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013

Formale Sprachen. Anwendungen formaler Sprachen Adressen, Kaffeeautomaten, Programmiersprachen. Rudolf Freund, Marian Kogler

Proseminar Funktionales Programmieren. Stephan Kreutzer

Programmierstile in C

Vorstellung RWTH Gründerzentrum

Amtliches Mitteilungsblatt. der Hochschule Harz Hochschule für angewandte Wissenschaften (FH) Wernigerode. Herausgeber: Der Rektor Nr.

Programmieren in C. Rekursive Funktionen. Prof. Dr. Nikolaus Wulff

Transkript:

Berühmte Informatiker Teil 10: J. Backus & D. E. Knuth 1924-1938-

* 03.12.1924 in Philadelphia John Backus Vorzeitiger Abbruch des Studiums der Chemie (1942) und der Medizin (1945) Während der Arbeit als Radiomechaniker entdeckt Backus seine Leidenschaft für Mathematik Studium der Mathematik an der Columbia University (Abschluss 1949) 1950-1991 Arbeit bei IBM Höhepunkte der Karriere: Entwicklung von Fortran, der ersten High-Level Programmiersprache Entwicklung der Backus-Naur-Form zur eindeutigen Beschreibung der Syntax von Programmiersprachen Auszeichnungen: 1977 ACM Turing Award für High-Level-Programmiersysteme und formale Verfahren zur Spezifikation von Programmiersprachen.

Fortran FORmula TRANslation: basiert auf dem Vorschlag von John Backus Programmiersprache, die insbesondere zur Berechnung numerischer Probleme eingesetzt wurde. Entwicklung von 1954-1957 Auf Anregung von Backus war der Fortran-Compiler von Anfang an zu Optimierungen fähig. Programmierstil basierte auf der Goto-Anweisung. Zitat Backus: We did not know what we wanted and how to do it. It just sort of grew. The first struggle was over what the language would look like. Then how to parse expressions - it was a big problem and what we did looks astonishingly clumsy now...

Backus-Naur-Form Zur exakten und eindeutigen Spezifikation von Programmiersprachen erfanden John Backus und Peter Naur die Backus-Naur-Form (BNF). Beispiel: <program> ::= program <declaration_sequence> begin <statements_sequence> end ; Verschiedene Änderungen und Erweiterungen der BNF wurden durchgeführt. Die heute gebräuchliche Version ist die extended Backus Naur Form (EBNF)

* 10.01.1938 in Milwaukee Donald Ervin Knuth Bachelor und Master 1960 an der Case Western Reserve University 1963 Ph.D. in Mathematik am California Institute of Technology 1963-1968 Mathematik Professor am California Institute of Technology seit 1968 Professor für Informatik an der Stanford University Höhepunkte der Karriere: Verfasser der Bibel für Informatiker : The Art of Computer Programming Entwickler von Tex und Metafont Auszeichnungen: 1974 ACM Turing Award für die Analyse von Algorithmen und den Entwurf von Programmiersprachen

Knuth-Morris-Pratt-Algorithmus Algorithmus zur Suche eines Musters (Pattern) in einem Text der die Anzahl der benötigte Vergleiche stark reduziert gegenüber dem naiven Ansatz. Naiver Ansatz: Gegeben: Text text der Länge n, Muster pattern der Länge m Ergebnis: Position im Text an der das Muster beginnt, sonst -1 int naivesearch(text,n,pattern,m){ int i=0,j=0; while(i<n-m){ j=0; while(text[i+j]==pattern[j]) j++; if(j==m) return i; i++; } } Der naive Algorithmus vergißt all sein Wissen über die nötigen Vergleiche. Im schlechtesten Fall braucht der Algorithmus O(m*n) Vergleiche.

KMP-Algorithmus: Fortsetzung Vorbemerkungen: Die Begriffe Präfix und Suffix haben wir bereits kennen gelernt. Ein Wort p ist ein echtes Präfix von w, falls p ein Präfix von w ist und p < w gilt. Die Definition eines echten Suffixes erfolgt analog. Ein Wort r ist ein Rand von w, falls r sowohl echtes Präfix, als auch echtes Suffix von w ist: ab ist Rand von abcab. Der KMP-Algorithmus untersucht zunächst das Muster und erarbeitet eine Tabelle, um wie viele Positionen die Suche nach rechts verschoben werden kann im Fall eines Mismatch. Beispiel: Die Suchposition kann um p - r Positionen verschoben werden, wobei p das übereinstimmende Präfix des Muster und r der Rand von p ist. Eine gute Beschreibung findet sich unter http://www.iti.fh-flensburg.de/lang/algorithmen/pattern/kmp.htm