den Einsatz von generierenden Werkzeugen und Theorien und von Software-Engineering-Methoden
|
|
- Julius Heiko Solberg
- vor 8 Jahren
- Abrufe
Transkript
1 U- Übersetzer Vorlesung WS /8 Uwe Kastens Ziele: grundlegende Verfahren der Sprachimplementierung erlernen den Einsatz von generierenden Werkzeugen und von Standardverfahren kennen und schätzen lernen Übersetzerkonstruktion als Beispiel für das Zusammenwirken von grundlegenden Algorithmen Theorien und von Software-Engineering-Methoden bei präzise definierten Aufgaben erkennen Anwendbarkeit der Verfahren auch für Sprachen jenseits der Programmiersprachen erkennen Vorlesung Übersetzer WS /8 / Folie
2 Inhalt U- Übersetzeraufgaben und -struktur Aufgabenzerlegung mit Bezug zu Sprachdefinitionen Symbole Syntax statische und dynamische Semantik Übersetzerstruktur Schnittstellen zentrale Datenstrukturen Interpretierer Debugger 3 Lexikalische Spezifikation und Implementierung endlicher Automaten eneratoren dafür Module zur Speicherung und Codierung von Symbolen Syntaktische Ziel- und quellorientierte Verfahren Rekursiver Abstieg LR-Verfahren eneratoren dafür rammatikklassen Fehlerbehandlung 5 Semantische Bezeichneridentifikation Typprüfung attributierte rammatiken eneratoren dafür Optimierende Programmtransformation Datenflußanalyse spezifiziert durch leichungssysteme Lösungsalgorithmen Transformationen Code-Erzeugung Typische Eigenschaften von Zielprozessoren Verfahren zur Registerzuteilung Optimierende Code-Auswahl eneratoren dafür 8 Code-Parallelisierung parallele Funktionseinheiten Pipelines Abhängigkeitsgraphen Vorlesung Übersetzer WS /8 / Folie
3 + Vorlesung Übersetzer WS /8 / Folie Literatur U Kastens: Übersetzerbau andbuch der Informatik 33 Oldenbourg (örerschein für Rabatt beim Kauf W M Waite L R Carter: An Introduction to Compiler Construction arper Collins New York 3 W M Waite oos: Compiler Construction Springer-Verlag 83 R Wilhelm D Maurer: Übersetzerbau - Theorie Konstruktion enerierung Springer-Verlag A Aho R Sethi J D Ullman: Compilers - Principles Techniques and Tools Addison-Wesley 8 A W Appel: Modern Compiler Implementation in C Cambridge University Press auch in Java und in ML U- " # $! /- ( %&
4 5 E? ( ( Vorlesung Übersetzer WS /8 / Folie Was übersetzt ein Übersetzer? U-3 Ein Übersetzer transformiert korrekte Sätze einer Quellsprache in gleichbedeutende Sätze einer Zielsprache Quellsprache: Zielsprache: Programmiersprache Maschinensprache C++ Sparc-Code Programmiersprache Abstrakte Maschine Java Java-Byte-Code Programmiersprache Programmiersprache Source-to-Source C++ C Anwendungssprache Anwendungssprache LaTeX TML DB-Sprache (SQL DB-Systemaufrufe Ein Interpretierer führt Sätze einer Quellsprache aus Lisp Shell-Kommandosprache Java-Byte-Code 8 = ( BC$ # $ AB # F 3 ( D = - C! $ : JI ;! M ( L K N D
5 Bedeutungserhaltende Übersetzung U- Ein Übersetzer transformiert korrekte Sätze einer Quellsprache in gleichbedeutende Sätze einer Zielsprache Quellsprache Bedeutung beschrieben für abstrakte Maschine Übersetzung gleiche Ergebnisse Zielsprache Sprachdefinition Maschinenbeschreibung Ausführung Die Bedeutung ist nur für korrekte Programme definiert Aufgabe: Fehlerbehandlung Der Übersetzer ermittelt statische Programmeigenschaften zur Übersetzungszeit z B übersetzbar Dynamische Eigenschaften werden zur Laufzeit des Programms ermittelt z B ausführbar Vorlesung Übersetzer WS /8 / Folie? = 5 O
6 5 5 5 P P Vorlesung Übersetzer WS /8 / Folie 5 P # Sprachdefinition - Übersetzeraufgaben U-5 Notation der rundsymbole (Wortsymbole Bezeichner Literale formal definiert: reguläre Ausdrücke Aufgabe: lexikalische syntaktische Struktur formal definiert: kontextfreie rammatik Aufgabe: syntaktische statische Semantik (Definition von Namen für Objekte Typregeln meist verbal definiert Aufgaben: semantische Transformation dynamische Semantik (Bedeutung Wirkung von Sprachkonstrukten meist verbal definiert in Termen einer abstrakten Sprachmaschine Aufgaben: Transformation Code-enerierung Definition der Zielsprache (-maschine Aufgaben: Transformation Code-enerierung Assemblierung BC$ # $ AB # + C! $ : JI ;! O & M Q P ( N S P R N P R 5 S R8
7 Übersetzeraufgaben Strukturierung Lexikalische Syntaktische Konversion Zerteilung Baumaufbau Translation Semantische Transformation Instruktionskodierung Typanalyse Kodierung Code- enerierung Assemblierung Symbolerkennung Bezeichneranalyse Datenabbildung Operationsabbildung Ausführungsreihenfolge Registerzuteilung Instruktions- Auswahl Interne Adressierung Externe Adressierung U- Vorlesung Übersetzer WS /8 / Folie T # 3?
8 ? - V Vorlesung Übersetzer WS /8 / Folie 5 # Zielmaschine - Übersetzeraufgaben U- Eigenschaften von Aufgaben der Kodierung Zielprozessoren Instruktionssatz Instruktionsauswahl RISC - CISC Instruktionsformat Instruktionskodierung - 3-Adress Registerzuteilung Register Registerzuteilung Klassen Anzahl Ausführungsreihenfolge Speicheradressierung Datenabbildung Ausrichtung interne Adressierung Adressbildung Instruktionsauswahl Instruktionskodierung Instruktionsausführung Ausführungsreihenfolge ( C! $ : JI ;! N 8 & N N D 5
9 @ - V S V Vorlesung Übersetzer WS /8 / Folie 8 Übersetzerstruktur und Schnittstellen Quellprogramm Lexikalische (frontend Symbolfolge Syntaktische Strukturbaum semantische Transformation Zwischensprache Optimierung Code- enerierung abstraktes Maschinenprogramm Nachoptimierung Zielprogramm Assemblierung Synthese (backend U-8 V # 3 O X Y 5 W BC$ # $ AB # 5 5 ( L C! $ : JI ;! D O N & T D ( ( L
10 Übersetzerqualitäten Korrektheit: richtige Programme richtig übersetzen falsche Programme zurückweisen Effizienz: Speicher- und Zeitbedarf des Übersetzers Code-Effizienz: Speicher- und Zeitbedarf des Ziel-Codes Aufgabe: Optimierung Benutzerfreundlichkeit: Aufgabe: Fehlerbehandlung Robustheit: jede Eingabe wird bewältigt Strategien zur Übersetzerkonstruktion Sprachdefinition exakt befolgen Vorlesung Übersetzer WS /8 / Folie generierende Werkzeuge einsetzen Standard-Module verwenden Standard-Methoden anwenden Validieren (Test-Suite Verifizieren U- = M
11 Z eneratoren U- Schema: Einbettung Spezifikation enerator implementierter Algorithmus Schnittstellen typische eneratoraufgaben: reg Ausdrücke Scanner-enerator endl Automat kontextfreie ram Parser-enerator Kellerautomat attributierte ram Attributauswerter- Baumdurchlauf enerator Berechnungen Code-Muster Code-Auswahl- Pattern-Matching enerator integriertes System Eli: Spezifikationen kooperierende eneratoren Übersetzer Vorlesung Übersetzer WS /8 / Folie L ( # L BC$ # $ AB # P D &
12 V Vorlesung Übersetzer WS /8 / Folie Umgebung des Übersetzers U- Übersetzungseinheiten Quellprogramme Bibliotheken Präprozessor Quellprogramme Übersetzer Code-Dateien Binder ausführbares Programm ausführbares Programm Quellprogramm interaktive Kommandos Speicherabzug Debugger Eingabe Ausgabe Interpretierer Quellprogramm teil Eingabe abstrakte Maschine Ausgabe 5? # ( O [
Was ist ein Compiler?
Was ist ein Compiler? Was ist ein Compiler und worum geht es? Wie ist ein Compiler aufgebaut? Warum beschäftigen wir uns mit Compilerbau? Wie ist die Veranstaltung organisiert? Was interessiert Sie besonders?
MehrÜbersetzer I. Vorlesung WS 1999/2000 Uwe Kastens
U-0 Übersetzer I Vorlesung WS 1999/2000 Uwe Kastens grundlegende Verfahren der Sprachimplementierung erlernen, den Einsatz von generierenden Werkzeugen und von Standardverfahren kennen und schätzen lernen,
MehrProgrammieren Formulierung eines Algorithmus in einer Programmiersprache
Zum Titel der Vorlesung: Programmieren Formulierung eines in einer Programmiersprache Beschreibung einer Vorgehensweise, wie man zu jedem aus einer Klasse gleichartiger Probleme eine Lösung findet Beispiel:
MehrPraktikum Compilerbau
Implementation eines s 20. April 2005 Vorlesungen Vorlesungen, die nützliche für das Praktikum liefern: Automaten, Formale Sprachen und Berechenbarkeit bau Abstrakte Maschinen Programm-Optimierung Fertigkeiten
MehrEinführung in die Systemprogrammierung
Einführung in die Systemprogrammierung Sprachen und Übersetzer Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 4. Juni 2015 Sprachen vs. Übersetzer Sprache C11 Übersetzer GNU C
MehrMächtigkeit von WHILE-Programmen
Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 26. November 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit
MehrÜbersetzergenerierung mit lex und yacc
Übersetzergenerierung mit lex und yacc 0. Überblick und Organisatorisches Jan Bredereke SoSe 2004, Universität Bremen otivation Übersetzer: Grundlegende Werkzeuge welche Fehler kann er finden? Konstrukt
Mehr1 ÜBERSETZER. Compilerbau 1
1 ÜBERSETZER 1 A.V.Aho, J.D.Ullmann: Principles of Compiler Design, Addison Wesley (1977) J.Amsterdam: Building a computer in Software, BYTE (Okt. 1985) Programming Project: A SIMPL Compiler, BYTE (Dez.
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen
MehrÜbersetzung von Programmiersprachen
Übersetzung von Programmiersprachen Arnd Poetzsch-Heffter AG Softwaretechnik TU Kaiserslautern Wintersemester 2005/06 1 1.Kapitel: Einführung Aufbauend auf den Techniken zur syntaktischen Analyse formaler
MehrFormale Sprachen und Grammatiken
Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax
MehrEin Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch
Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,
MehrSchulinternes Curriculum für Informatik (Q2) Stand April 2015
Schulinternes Curriculum für Informatik (Q2) Stand April 2015 Unterrichtsvorhaben Q2-I Thema: Modellierung und Implementierung von Anwendungen mit dynamischen, nichtlinearen Datenstrukturen Modellieren
MehrVorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann
Vorgetragen von Sanaz Mostowfi Anna Polovets Mandy Neumann Gliederung Was ist DSL? Welche Arten von DSL gibt es? Vor und Nachteile Werkzeuge zur Erstellung von DSLs XText Definition: DSL (Domain Specific
MehrTheoretische Informatik I
Theoretische Informatik I Einheit 2.4 Grammatiken 1. Arbeitsweise 2. Klassifizierung 3. Beziehung zu Automaten Beschreibungsformen für Sprachen Mathematische Mengennotation Prädikate beschreiben Eigenschaften
MehrGrundlagen der Informatik II. Teil I: Formale Modelle der Informatik
Grundlagen der Informatik II Teil I: Formale Modelle der Informatik 1 Einführung GdInfoII 1-2 Ziele/Fragestellungen der Theoretischen Informatik 1. Einführung abstrakter Modelle für informationsverarbeitende
MehrCompiler für Eingebettete Systeme
Compiler für Eingebettete Systeme [CS7506] Sommersemester 2014 Heiko Falk Institut für Eingebettete Systeme/Echtzeitsysteme Ingenieurwissenschaften und Informatik Universität Ulm Kapitel 1 Einordnung &
MehrEIGENSCHAFTEN VON SPRACHEN
Vorlesung und Übung Universität Paderborn Wintersemester 2016/2017 Dr. Peter Pfahler EIGENSCHAFTEN VON SPRACHEN EWS, WS 2016/17, Pfahler C-1 Einführung Sprachen in der Informatik werden für bestimmte Zwecke
MehrLehrstuhl Informatik VI Grundzüge der Informatik * WS 2008/2009 Prof. Dr. Joachim Biskup
Universität Dortmund Lehrstuhl Informatik VI Grundzüge der Informatik * WS 28/29 Prof. Dr. Joachim Biskup Leitung der Übungen: Arno Pasternak Lösungs-Ideen Übungsblatt 6 A: Grammatiken, Syntaxdiagramme
MehrBeispiel einer Übersetzung
Beispiel einer Übersetzung Ausdruck in C aktuelle_zeit = Startzeit + vergangene_minuten*60 + vergangene_sekunden; Ausdruck im Instruktionssatz des R10000 LW r1,minuten LW r1,sekunden ADDI r2,r0,60 ADD
MehrVBA-Programmierung: Zusammenfassung
VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung
MehrÜbersetzung objektorientierter Programmiersprachen
Bernhard Bauer Riitta Höllerer Übersetzung objektorientierter Programmiersprachen Konzepte, abstrakte Maschinen und Praktikum Java-Compiler" Mit 29 Abbildungen Springer Teil 1: Theorie 1 Einleitung 3 l.
Mehr4. 4. Algorithmen und Datenstrukturen in deskriptiven Programmiersprachen
Kapitel Kapitel 4 Deskriptive Programmierung SS 2008 4. 4. Algorithmen und Datenstrukturen in in deskriptiven Programmiersprachen Deskriptive Programmierung 1 Sprachverarbeitung in in Prolog Prolog Prolog
MehrBinäre Suchbäume (binary search trees, kurz: bst)
Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.
MehrJAVA als erste Programmiersprache Semesterkurs
JAVA als erste Programmiersprache Semesterkurs 0 - Einstieg WS 2012 / 2013 Prof. Dr. Bodo Kraft Prof. Dr. Bodo Kraft FH Aachen University of Applied Sciences Fachbereich Medizintechnik und Technomathematik
MehrLernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.
6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente
MehrZentralabitur 2017 Informatik
Zentralabitur.nrw Ministerium für Schule und Weiterbildung des Landes Nordrhein-Westfalen Zentralabitur 2017 Informatik I. Unterrichtliche Voraussetzungen für die schriftlichen Abiturprüfungen an Gymnasien,
MehrCompiler und Codegenerierung. Hw-Sw-Co-Design
Compiler und Codegenerierung Hw-Sw-Co-Design Wo sind wir? System Verhalten Modul Architektur Block SW HW Logik Struktur Compiler und Codegenerierung Compiler - Aufbau Codegenerierung Codeoptimierung Codegenerierung
MehrZentralabitur 2018 Informatik
Zentralabitur.nrw Ministerium für Schule und Weiterbildung des Landes Nordrhein-Westfalen Zentralabitur 2018 Informatik I. Unterrichtliche Voraussetzungen für die schriftlichen Abiturprüfungen an Gymnasien,
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
MehrLehrpläne NRW Sek.stufe 2. Lernen im Kontext
Lehrpläne NRW Sek.stufe 2 Lernen im Kontext Fachliche Inhalte Lernziele Informatik NRW Fähigkeit, komplexe Zusammenhänge mit gedanklicher Schärfe zu durchdringen (Problemanalyse) Überblick über unterschiedliche
Mehr2D22 Prinzipien der Softwareentwicklung. Prinzipien der Softwareentwicklung S. Strahringer 1
2D22 1 Inhalte der Lehrveranstaltung Einführung in die Programmierung mit PHP Literatur: Theis, Thomas (2010): Einstieg in PHP 5.3 und MySQL 5.4. [für Programmieranfänger geeignet]. 6., aktualisierte Aufl.
Mehr1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi
1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Einführung in
Mehr2. Datenbank-Programmierung
2. Datenbank-Programmierung SQL ist eingeschränkt bezüglich der algorithmischen Mächtigkeit, z.b. Berechnung einer transitiven Hülle ist in Standard-SQL nicht möglich. Die Einschränkung ist von Bedeutung
MehrCompilerbau mit Phoenix
Übersicht 2 Was ist ein Compiler? Frontend Analyse Backend Synthese Compiler-Pässe 3 Was ist ein Compiler? Frontend (Eingabesprache) Analyse Backend (Ausgabesprache) Synthese 4 Was ist ein Compiler? Frontend
MehrVorlesung C-Kurs 9:15-10:45 Mathe 11:15-12:45 1. Woche Hörsaal 1 2. Woche Hörsaal 7
Vorlesung C-Kurs 9:15-10:45 Mathe 11:15-12:45 1. Woche Hörsaal 1 2. Woche Hörsaal 7 Seminare / Praktikum M1/C1 : Mathe 13:15-14:45, C-Kurs 15:15-16:45h M2/C2 : C-Kurs 13:15-14:45, Mathe 15:15-16:45h M*
MehrComa I. Einleitung. Computer und Algorithmen. Programmiersprachen. Algorithmen versus Programmiersprachen. Literaturhinweise
Coma I Einleitung 1 Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen Literaturhinweise 2 Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen
MehrProgrammiersprachen und Übersetzer
Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch
MehrKapitel 4. Einführung in den Scannergenerator Flex. Einführung in den Scannergenerator Flex Wintersemester 2008/09 1 / 9
Kapitel 4 Einführung in den Scannergenerator Flex Einführung in den Scannergenerator Flex Wintersemester 2008/09 1 / 9 Generatoren für die lexikalische Analyse Scannergeneratoren werden eingesetzt um die
MehrDr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht
Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur UML-Klassendiagramme als Werkzeug im Unterricht Blitzlicht? In welcher Programmiersprache(n) unterrichten Sie?? In welchem Umfang unterrichten Sie Objektorientierung??
MehrSchulcurriculum Informationstechnische Grundkenntnisse und Informatik Stand: 18.09.2011
Bezug zu den Leitideen der Bildungsstandards und den Kompetenzen, Inhalte Bemerkungen welche die Schülerinnen und Schüler erwerben Klasse 11 Informatik 4-stündig Einführung in die objektorientierte Modellierung
MehrWerkzeuggestützte Softwareprüfungen Statische Analyse und Metriken
Werkzeuggestützte Softwareprüfungen Statische Analyse und Metriken Dennis Hardt 21.06.2006 Gliederung Statische Analyse Definition, Arbeitsweise, Werkzeuge Angewandt auf ein Projekt Statische Analyse selbst
Mehr10 Erweiterung und Portierung
10.1 Überblick In vielen Fällen werden Compiler nicht vollständig neu geschrieben, sondern von einem Rechnersystem auf ein anderes portiert. Das spart viel Arbeit, ist aber immer noch eine sehr anspruchsvolle
MehrGrammatiken. Einführung
Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische
MehrAlgorithmen mit Python
Algorithmen mit Python Vorbesprechung zum Proseminar im Sommersemester 2009 http://www.python.org 1 Sie lernen in DAP Java und C/C++: 80% Syntax, 20% Algorithmen-Design Idee Schon ein einfaches Hello World
MehrAlgorithmen und Berechnungskomplexität I
Institut für Informatik I Wintersemester 2010/11 Organisatorisches Vorlesung Montags 11:15-12:45 Uhr (AVZ III / HS 1) Mittwochs 11:15-12:45 Uhr (AVZ III / HS 1) Dozent Professor für theoretische Informatik
Mehr2.1.1 Übersichtsraster Unterrichtsvorhaben. I) Einführungsphase. Einführungsphase. Unterrichtsvorhaben E-II. Unterrichtsvorhaben E-I
2.1.1 Übersichtsraster Unterrichtsvorhaben I) Einführungsphase Einführungsphase Unterrichtsvorhaben E-I Einführung in die Nutzung von Informatiksystemen und in grundlegende Begrifflichkeiten Informatiksysteme
MehrSoftwaretechnik 1 Tutorium
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Softwaretechnik 1 Tutorium 06. Juli 2009 Matthias Thoma (s_thoma@ira.uka.de) Heute Übungsblatt Nr. 4 + Übungsblatt Nr. 5 Softwarequalität
MehrVorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick
Vorlesung Objektorientierte Softwareentwicklung Sommersemester este 2008 Kapitel 0. Java-Überblick Was sind die Ziele? Warum Java? Komplexe Anwendungen e-business verteilt zuverlässig sicher mobil persistent
MehrÜbung Theoretische Grundlagen
Übung Theoretische Grundlagen Berechenbarkeit/Entscheidbarkeit Nico Döttling November 26, 2009 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT University of the State of Baden-Wuerttemberg and National Laboratory
MehrDie Komplexitätsklassen P und NP
Die Komplexitätsklassen P und NP Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 3. Dezember 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und
MehrOrganisatorisches. Informatik II Informationen und Daten. Organisatorisches. Organisatorisches. Rainer Schrader. 13. Oktober 2008
Dozent: Prof. Dr. Rainer Schrader Informatik II Informationen und Daten Rainer Schrader Zentrum für Angewandte Informatik Köln 13. Oktober 2008 Tel.: 470-6030 email: schrader@zpr.uni-koeln.de Sprechstunde:
Mehr3. Stored Procedures und PL/SQL
3. Stored Procedures und PL/SQL Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln
MehrDas Studium im Fach Informatik
[Projekttage Studien- und Berufsorientierung der Jgst. 12] Fachbereich Informatik Fakultät für Mathematik und Informatik FernUniversität Hagen 22. Februar 2007 Was Informatik nicht ist Was ist Informatik?
MehrFachseminar WS 2008/09
Fachseminar WS 2008/09 Fachgebiet: Compilerbau Thema: Lexikalische Analyse (Scanner) Referent: Ali Sediq Betreuer: Prof. Dr. Helmut Weber 1 Inhaltsverzeichnis Lexikalische Analyse 1.0 Grundprobleme der
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Tutorium 27 29..24 FAKULTÄT FÜR INFORMATIK KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Definition
MehrAlgorithmik II. SS 2003 Prof. Dr. H. Stoyan Lehrstuhl für Informatik 8 ( Künstliche Intelligenz) Email: stoyan@informatik.uni-erlangen.
Algorithmik II SS 2003 Prof. Dr. H. Stoyan Lehrstuhl für Informatik 8 ( Künstliche Intelligenz) Email: stoyan@informatik.uni-erlangen.de Homepage der Vorlesung Vorbemerkungen I http://www8.informatik.uni-erlangen.de/immd8
MehrProgrammierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.
1 Programmierung 2 Übersetzer: Code-Erzeugung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 Bytecodes Der Java Übersetzer erzeugt keine Maschinensprache
MehrEinführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)
Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff
MehrDiplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008
Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen
Mehr1. Einführung Advanced Programming Techniques. Wintersemester 2009/10 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik
1. Einführung Advanced Programming Techniques Wintersemester 2009/10 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Advanced
MehrVirtuelle Maschinen Konzept von VMWare
Virtuelle Maschinen Konzept von 11.12.2007 1 Einleitung 2 Software Virtualisierung 3 Software vs. Hardware 4 Fazit und Ausblick Motivation von Steigende Beliebtheit der x86-architektur Virtualizierung
MehrSome Software Engineering Principles
David L. Parnas: Some Software Engineering Principles Marco Oppel 30.06.2004 Seminar Software-Architektur Institut für Informatik Humboldt Universität zu Berlin 1 Problemstellung Software Engineering Multi-Personen
MehrDSL Entwicklung und Modellierung
DSL Entwicklung und Modellierung Dipl. Inform. Rolf Hänisch Übersicht DSL, was bedeutet das für uns? Eine Anwendung aus der Automatisierungstechnik Sprachen und Werkzeuge Ergebnisse und Erfahrungen GI
MehrEinführung in PHP. (mit Aufgaben)
Einführung in PHP (mit Aufgaben) Dynamische Inhalte mit PHP? 2 Aus der Wikipedia (verkürzt): PHP wird auf etwa 244 Millionen Websites eingesetzt (Stand: Januar 2013) und wird auf etwa 80 % aller Websites
MehrForschungsprojekt SS 2009
Forschungsprojekt SS 2009 Programmierung verteilter Systeme Institut für Informatik Universität Augsburg 86135 Augsburg Tel.: +49 821 598-2118 Fax: +49 821 598-2175 Web: www.ds-lab.org Gliederung n Ziel
MehrCompilerbau für die Common Language Run-Time
Compilerbau für die Common Language Run-Time Syntax und Semantik von Programmiersprachen 2 Compilerbau Sprachbeschreibung vs. Implementierung Beschreibung: formale oder informale (engl.) Lexik, Syntax,
MehrLinguistik für Kognitionswissenschaften
Linguistik für Kognitionswissenschaften Computerlinguistik: Maschinelle Übersetzung Computerlinguistik Fehlübersetzung von engl. computational linguistics - computationelle Linguistik beinhaltet im weiteren
MehrÜbersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?
Übersicht Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Einleitung 1 2 der nebenläufigen Programmierung WS 2011/12 Stand der Folien: 18. Oktober 2011 1 TIDS
Mehr2 Der Schnelleinstieg *
7 2 Der Schnelleinstieg * Eine Programmiersprache können Sie auf verschiedene Art und Weise lernen. Sie können sich zuerst mit den Konzepten befassen und anschließend mit der Praxis oder umgekehrt. Damit
MehrThe B Method. B ist eine Methode zur Spezifikation zum Entwurf zur Implementierung von Software Systemen. Bücher zur B-Methode
The B Method B ist eine Methode zur Spezifikation zum Entwurf zur Implementierung von Software Systemen. Bücher zur B-Methode P. Schmitt: Formal Specification and Verification of Software p.1 The B Method
MehrKapitel 5: Dynamisches Programmieren Gliederung
Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen
MehrÄquivalente Grammatiken / attributierte Grammatik
Äquivalente Grammatiken / attributierte Grammatik Linksfaktorisierung Elimination von Linksrekursion Umwandlung von EBNF in BNF Attributierte Grammatik Semantikfunktionen und Übersetzungsschema Synthetisierte,
MehrPart-Of-Speech-Tagging mit Viterbi Algorithmus
Part-Of-Speech-Tagging mit Viterbi Algorithmus HS Endliche Automaten Inna Nickel, Julia Konstantinova 19.07.2010 1 / 21 Gliederung 1 Motivation 2 Theoretische Grundlagen Hidden Markov Model Viterbi Algorithmus
MehrTheoretische Grundlagen des Software Engineering
Theoretische Grundlagen des Software Engineering 11: Abstrakte Reduktionssysteme schulz@eprover.org Reduktionssysteme Definition: Reduktionssystem Ein Reduktionssystem ist ein Tupel (A, ) Dabei gilt: A
MehrPrinzipien Objektorientierter Programmierung
Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................
MehrUniversität Paderborn Die Universität der Informationsgesellschaft. Validierung und Verifikation (inkl. Testen, Model-Checking, Theorem Proving)
Universität Paderborn Die Universität der Informationsgesellschaft Analyse, Entwurf und Implementierung zuverlässiger Software und (inkl., Model-Checking, Theorem Proving) Torsten Bresser torbre@uni-paderborn.de
MehrSemantik von Formeln und Sequenzen
Semantik von Formeln und Sequenzen 33 Grundidee der Verwendung von Logik im Software Entwurf Syntax: Menge von Formeln = Axiome Ax K ist beweisbar Formel ϕ beschreiben Korrektkeit Vollständigkeit beschreibt
MehrEntwicklung eines korrekten Übersetzers
Entwicklung eines korrekten Übersetzers für eine funktionale Programmiersprache im Theorembeweiser Coq Thomas Strathmann 14.01.2011 Gliederung 1 Einleitung
MehrProseminar Technische Informatik A survey of virtualization technologies
Proseminar Technische Informatik A survey of virtualization technologies Referent: Martin Weigelt Proseminar Technische Informatik - A survey of virtualization technologies 1 Übersicht 1. Definition 2.
MehrInformatik in der Elektrotechnik (BIE) Aufnahme des Übungsbetriebs
Informatik in der Elektrotechnik (BIE) Arbeitsblatt 00 : Aufnahme des Übungsbetriebs Arbeiten mit DevC/C++ unter Windows XP Ziel der ersten Übung ist, ein einfaches C-Programm ( hallo.c ) unter XP mit
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Tutorium 4 26..25 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
MehrGrammatiken in Prolog
12. Grammatiken in Prolog 12-1 Grammatiken in Prolog Allgemeines: Gedacht zur Verarbeitung natürlicher Sprache. Dort braucht man kompliziertere Grammatiken als etwa im Compilerbau, andererseits sind die
MehrLanguage Workbench. Aktuelle Themen der Softwaretechnologie. Vortrag von: Arthur Rehm Steven Cardoso. Betreut von: Prof. Dr.
Language Workbench Vortrag von:! Aktuelle Themen der Softwaretechnologie Arthur Rehm Steven Cardoso Betreut von: Prof. Dr. Reichenbach [1] !2 Index Kontext Domain Specific Language (DSL) Language Workbench
MehrLINQ to SQL. Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel. Institut für Informatik Software & Systems Engineering
LINQ to SQL Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel Institut für Informatik Software & Systems Engineering Agenda 1. LINQ allgemein Vorteile Bausteine und Varianten
MehrVorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz
Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen)
MehrInformatik und Informationstechnik (IT)
Informatik und Informationstechnik (IT) Abgrenzung Zusammenspiel Übersicht Informatik als akademische Disziplin Informations- und Softwaretechnik Das Berufsbild des Informatikers in der Bibliothekswelt
MehrSoftware Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur
MehrGrundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 27. Aussagenlogik: Logisches Schliessen und Resolution Malte Helmert Universität Basel 28. April 2014 Aussagenlogik: Überblick Kapitelüberblick Aussagenlogik: 26.
Mehr3. Ziel der Vorlesung
3. Ziel der Vorlesung Der Zweck der Vorlesung ist das Studium fundamentaler Konzepte in der Algorithmentheorie. Es werden relevante Maschinenmodelle, grundlegende und höhere Datenstrukturen sowie der Entwurf
MehrInformatik I. Grundlagen der systematischen Programmierung. Peter Thiemann WS 2008/09. Universität Freiburg, Germany
Informatik I Grundlagen der systematischen Programmierung Peter Thiemann Universität Freiburg, Germany WS 2008/09 Organisatorisches Vorlesung Di und Do, 11-13 Uhr, HS 101-00-036 Dozent Prof. Dr. Peter
MehrModellierung verteilter Systeme Grundlagen der Programm und Systementwicklung
Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Wintersemester 2009/10 Prof. Dr. Dr. h.c. Manfred Broy Unter Mitarbeit von Dr. K. Spies, Dr. M. Spichkova, L. Heinemann, P.
MehrInformatik I Tutorium WS 07/08
Informatik I Tutorium WS 07/08 Vorlesung: Prof. Dr. F. Bellosa Übungsleitung: Dipl.-Inform. A. Merkel Tutorium: 12 Tutor: Jens Kehne Tutorium 3: Dienstag 13. November 2007 Übersicht Tutorium Übersicht
MehrProjekt 04: Einstieg in Actionscript: Bestimmung von π mit Monte-Carlo-Methode
Michael Gieding Erstellen von Multimediaanwendungen für den Unterricht (Flash) Projekt 04: Einstieg in Actionscript: Bestimmung von π mit Monte-Carlo-Methode Folien zur gleichnamigen Lehrveranstaltung
Mehr4. Übung zu Software Engineering
4. Übung zu Software Engineering WS 2009/2010 Henning Heitkötter Klassendiagramm: Projektmanagement AUFGABE 10 1 OOA-Methode von Heide Balzert 1. Klassen finden 2. Assoziationen und Kompositionen finden
MehrWI EDI Solution. Stand 17.02.2012
WI EDI Solution Stand 17.02.2012 WIAG Überblick 2011 - SAP, SAP BW, SAP SEM/BPS, SAP BPC, SAP R/3, ABAP, Netweaver sind eingetragene Warenzeichen der SAP AG, Walldorf Folie 1 Inhalt Was ist WIEDIS? IDOC
MehrWortproblem für kontextfreie Grammatiken
Wortproblem für kontextfreie Grammatiken G kontextfreie Grammatik. w Σ w L(G)? Wortproblem ist primitiv rekursiv entscheidbar. (schlechte obere Schranke!) Kellerautomat der L(G) akzeptiert Ist dieser effizient?
Mehrt r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )
Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen
MehrEinführung in die Informatik Grammars & Parsers
Einführung in die Informatik Grammars & Parsers Grammatiken, Parsen von Texten Wolfram Burgard Cyrill Stachniss 12.1 Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme
MehrANSPRECHPARTNER. Film Mathematik statt Rechnen (Quelle: Hochschule Merseburg) Prof. Dr. Axel Kilian Fachbereich Informatik und Kommunikationssysteme
ANSPRECHPARTNER Prof. Dr. Axel Kilian Fachbereich Informatik und Kommunikationssysteme Hochschule Merseburg axel.kilian@hs-merseburg.de Film Mathematik statt Rechnen (Quelle: Hochschule Merseburg) HOCHSCHULE
Mehr