Praktikum Compilerbau Sitzung 7 libfirm
|
|
- Ralph Grosser
- vor 5 Jahren
- Abrufe
Transkript
1 Praktikum Compilerbau Sitzung 7 libfirm Lehrstuhl für Programmierparadigmen Universität Karlsruhe (TH) 3. Juni 29 (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 / 2
2 Letzte Woche 2 Firmgraph Optimierungen 3 Aufgabe 4 Sonstiges (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 2 / 2
3 Letzte Woche Letzte Woche Was waren die Probleme? Hat soweit alles geklappt? (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 3 / 2
4 Firmgraph Optimierungen Letzte Woche 2 Firmgraph Optimierungen 3 Aufgabe 4 Sonstiges (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 4 / 2
5 Firmgraph Optimierungen Compilerphasen Lexer Parser Tokens AST Semantik Zwischencodeerzeugung Optimierung attributierter AST Zwischencode Zwischencode Codeerzeugung (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 5 / 2
6 Firmgraph Optimierungen Optimieren mit Firm Ersetzen von teueren Strukturen durch Billigere Entfernen unnötiger Befehle Gemeinsame Teilausdrücke Konstantenfalten Arithmetische Vereinfachung... Graphbasierter Zwischencode Ablaufen des Graphen SSA Form Def-Use enthalten Viele Optimierungen gehen einfacher (ohne Datenfluss Analyse) Tipp: Normalisieren als erster Schritt hilft oft (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 6 / 2
7 Firmgraph Optimierungen Beispiel: Konstantenfalten public int foo3() { int x; x = 2 + 3; return x + x + 4; Konstante Ausdrücke vorberechnen Variablen mit Konstanten Werten propagieren In Firm sehr einfach: keine Variablen vorhanden public int foo3() { return 4; (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 7 / 2
8 Firmgraph Optimierungen Beispiel: Firmgraph foo3()i Block 46 public int foo3() { int x; x = 2 + 3; return x + x + 4; Start 49 ProjM 54 ProjX X_initial_exec 5 Block 56 ConstIs x3 59 ConstIs x2 58 AddIs 6 AddIs 6 ConstIs x4 62 AddIs 63 Return 65 Block 44 End 45 (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 8 / 2
9 Firmgraph Optimierungen Beispiel: Firm Konstantenfalten Block 56 Graph durchlaufen und konstante Ausdrücke suchen Wie durchlaufen? Tiefensuche, Breitensuche, Postorder,...? ConstIs x3 59 ConstIs x2 58 AddIs 6 AddIs 6 ConstIs x4 62 AddIs 63 Return 65 (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 9 / 2
10 Firmgraph Optimierungen Tiefensuche void preorder(node node) { act(node); for (Node pred : node.predcessors) { preorder(pred); void postorder(node node) { for (Node pred : node.predcessors) { postorder(pred); act(node); (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 / 2
11 Firmgraph Optimierungen Beispiel: Tiefensuche Block 56 ConstIs x3 59 ConstIs x2 58 AddIs 6 AddIs 6 ConstIs x4 62 AddIs 63 Return 65 (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 / 2
12 Firmgraph Optimierungen Start 49 Beispiel: Tiefensuche ProjM 54 ProjX X_initial_exec 5 ConstIs x3 59 ConstIs x2 58 Block 56 Preorder Block 56 AddIs 6 ConstIs x5 67 AddIs 6 ConstIs x4 62 AddIs 6 ConstIs x4 62 AddIs 63 Return 65 AddIs 63 Return 65 Block 44 End 45 (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 / 2
13 Firmgraph Optimierungen Beispiel: Tiefensuche Block 56 ConstIs x3 59 ConstIs x2 58 AddIs 6 AddIs 6 ConstIs x4 62 AddIs 63 Return 65 (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 2 / 2
14 Firmgraph Optimierungen Beispiel: Tiefensuche Start 49 Block 46 ConstIs x3 59 ConstIs x2 58 Block 56 ProjM 54 ProjX X_initial_exec 5 AddIs 6 AddIs 6 ConstIs x4 62 Postorder Block 56 ConstIs xe 69 AddIs 63 Return 65 Return 65 Block 44 End 45 (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 2 / 2
15 Firmgraph Optimierungen Graph traversieren in Firm Preorder Tiefensuche im Firmgraph: walk(nodevisitor visitor) Postorder Tiefensuche im Firmgraph: walkpostorder(nodevisitor visitor) public interface NodeVisitor { void visit(nomem node); void visit(end node);... static abstract class Default implements NodeVisitor { public abstract void defaultvisit(node n); public void visit(nomem node) { defaultvisit(node); (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 3 / 2
16 Firmgraph Optimierungen Beispiel: Konstantenfalten - Initialisierung public class FoldConstants extends NodeVisitor.Default { private final Graph graph; public FoldConstants(Graph method) { this.graph = method; public void optimize() { graph.walkpostorder(this); //graph.walk(this); public void defaultvisit(node n) { // Leave nodes untouched per default. (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 4 / 2
17 Firmgraph Optimierungen Beispiel: Konstantenfalten - Add public void visit(add add) { Node left = add.getleft(); Node right = add.getright(); if (left instanceof Const && right instanceof Const) { Const c = (Const) left; Const c2 = (Const) right; TargetValue val = c.gettarval(); TargetValue val2 = c2.gettarval(); TargetValue valsum = val.add(val2); Node sum = graph.newconst(valsum); Graph.exchange(add, sum); (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 5 / 2
18 Firmgraph Optimierungen Demo Demo (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 6 / 2
19 Aufgabe Letzte Woche 2 Firmgraph Optimierungen 3 Aufgabe 4 Sonstiges (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 7 / 2
20 Aufgabe Optimierungen Implementiere Konstantenfaltung. Entwirf eine sinnvolle Normalisierung und begründe sie. Implementiere die Normalisierung. (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 8 / 2
21 Sonstiges Letzte Woche 2 Firmgraph Optimierungen 3 Aufgabe 4 Sonstiges (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 9 / 2
22 Sonstiges Feedback! Fragen? Probleme? Anmerkungen? Probleme? Fragen? (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 2 / 2
Praktikum Compilerbau Sitzung 4 Semantik und Typprüfung
Praktikum Compilerbau Sitzung 4 Semantik und Typprüfung Lehrstuhl für Programmierparadigmen Universität Karlsruhe (TH) 13. Mai 2009 (IPD Snelting) Sitzung 4 Semantik 13. Mai 2009 1 / 13 1 Letzte Woche
MehrPraktikum Compilerbau Sitzung 10 Codeerzeugung
Praktikum Compilerbau Sitzung 10 Codeerzeugung Prof. Dr.-Ing. Gregor Snelting Matthias Braun und Sebastian Buchwald IPD Snelting, Lehrstuhl für Programmierparadigmen KIT Universität des Landes Baden-Württemberg
MehrPraktikum Compilerbau Sitzung 4 Abstrakter Syntaxbaum
Praktikum Compilerbau Sitzung 4 Abstrakter Syntaxbaum Prof. Dr.-Ing. Gregor Sneltg Andreas Zwkau IPD Sneltg, Lehrstuhl für Programmierparadigmen KIT Universität des Landes Baden-Württemberg und nationales
MehrPraktikum Compilerbau Sitzung 6 libfirm Teil 2
Praktikum Compilerbau Sitzung 6 libfirm Teil 2 Lehrstuhl für Programmierparadigmen Universität Karlsruhe (TH) 27. Mai 2009 (IPD Snelting) Sitzung 6 libfirm Teil 2 27. Mai 2009 1 / 30 1 Letzte Woche 2 Firmgraph
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting snelting@ipd.info.uni-karlsruhe.de
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen
Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.
MehrInstitut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
MehrPraktikum Compilerbau Sitzung 9 Codeerzeugung
Praktikum Compilerbau Sitzung 9 Codeerzeugung Prof. Dr.-Ing. Gregor Snelting Matthias Braun IPD Snelting, Lehrstuhl für Programmierparadigmen KIT Universität des Landes Baden-Württemberg und nationales
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Lernziele Die Definition wichtiger Begriffe im Zusammenhand mit Bäumen zu kennen. Markierte Bäumen, insbesondere Suchbäume,
MehrII.4.2 Abstrakte Klassen und Interfaces - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.2 Abstrakte Klassen und Interfaces - 1
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrProgrammierung Nachklausurtutorium
Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel
MehrProgrammieren in Java
Programmieren in Java Vorlesung 06: Das Visitor Pattern Prof. Dr. Peter Thiemann (vertreten durch Luminous Fennell) Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg)
MehrEinstieg in die Informatik mit Java
1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung
Mehr5. Tutorium zu Programmieren
5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting
Mehr! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -
! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete II.4.2 Abstrakte Klassen und Interfaces - 1 - Ähnliche Programmteile public class Bruchelement { Bruch wert;
MehrPraktikum Compilerbau Sitzung 6 libfirm
Praktikum Compilerbau Sitzung 6 libfirm Prof. Dr.-Ing. Gregor Snelting Matthias Braun und Sebastian Buchwald IPD Snelting, Lehrstuhl für Programmierparadigmen KIT Universität des Landes Baden-Württemberg
MehrVorkurs Informatik WiSe 15/16
Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann
Mehr1 Abstrakte Klassen, finale Klassen und Interfaces
1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White
MehrName: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.
Name: Seite 2 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie sieht -5 in der 4Bit 2-er Komplementdarstellung aus? 2. Berechnen Sie
MehrBinärbäume. Prof. Dr. E. Ehses, 2014 1
Binärbäume Grundbegriffe der Graphentheorie Bäume und Ihre Anwendungen Unterschiedliche Darstellungen von Bäumen und Binärbäumen Binärbäume in Java Rekursive Traversierung von Binärbäumen Ebenenweise Traversierung
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrDatenstruktur Baum Software Entwicklung 1
Datenstruktur Baum Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller Bäume gehören zu den wichtigsten in der Informatik auftretenden Datenstrukturen. [Ottmann, Widmayer: Algorithmen
MehrDie abstrakte Klasse Expression:
Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const 501 Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const Leider (zum Glück?) lässt sich nicht die
MehrClient-Server-Beziehungen
Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server
MehrProgrammieren in Java
Programmieren in Java Vorlesung 10: Ein Interpreter für While Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1
MehrKlassen und Konstruktoren in Java
Klassen und Konstruktoren in Java class Circle { int r; Circle(int r) { this.r = r; // 1 Circle(Circle c) { this.r = c.r; // 2 Circle() { r = 1; // 3...... Circle a = new Circle(2); // Konstruktor 1 Circle
MehrErsetzbarkeit und Verhalten
Ersetzbarkeit und Verhalten U ist Untertyp von T, wenn eine Instanz von U überall verwendbar ist, wo eine Instanz von T erwartet wird Struktur der Typen für Ersetzbarkeit nicht ausreichend Beispiel: void
MehrInformatik II Übung 7. Pascal Schärli
Informatik II Übung 7 pascscha@student.ethz.ch Was gibts heute? Warm-Up Nachbesprechung Serie 6 Best-Of Vorlesung: Generics Binäre Suchbäume Spielbäume Vorbesprechung Serie 7 2 Warm - Up Warm-Up interface
MehrAbstrakte Basisklassen
Abstrakte Basisklassen Softwareentwicklung II (IB) Prof. Dr. Oliver Braun Letzte Änderung: 24.06.2018 15:20 Abstrakte Basisklassen 1/18 Idee (1/2) Gegensätze: Interfaces ausschließlich Methodenköpfe, keine
MehrAlgorithmen und Datenstrukturen CS1017
Algorithmen und Datenstrukturen CS1017 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Rekursiv definierte Strukturen und strukturelle Rekursion Listen und Bäume Strukturelle Rekursion
MehrSoftware Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
MehrEinführung in die Informatik 1
Einführung in die Informatik 1 Prof. Dr. Harald Räcke, R. Palenta, A. Reuss, S. Schulze Frielinghaus 21.02.2017 Klausur Vorname Nachname Matrikelnummer Unterschrift Füllen Sie die oben angegebenen Felder
MehrII.4.5 Generische Datentypen - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.5 Generische Datentypen - 1 - Ähnliche
MehrPrüfung Softwareentwicklung II (IB)
Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 2 B, IB 2 C Sommersemester 2013 Prüfung Softwareentwicklung II (IB) Datum : 11.07.2013, 08:30 Uhr
MehrAbstrakte Basisklassen
Softwareentwicklung II (IB) Abstrakte Basisklassen Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 24.06.2018 15:20 Inhaltsverzeichnis Idee.........................................
MehrInformatik II Übung 06. Benjamin Hepp 5 April 2017
Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Arithmetische Ausdrücke Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
MehrJava Einführung Abstrakte Klassen und Interfaces
Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer
Mehr1 Maschinenunabhängige Optimierungen. Maschinenunabhängige Optimierungen Wintersemester 2008/09 1 / 17
1 Maschinenunabhängige Optimierungen Maschinenunabhängige Optimierungen Wintersemester 2008/09 1 / 17 Optimierungen Automatische Optimierungen sind nötig, weil unoptimierter Code meist besser lesbar ist.
MehrKapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
MehrAktivitätsanalyse (Liveness Analysis)
Aktivitätsanalyse (Liveness Analysis) Compilerbau Aktivitätsanalyse (Liveness Analysis) 220 Aktivitätsanalyse (Liveness Analysis) Für eine gute Registerverteilung müssen wir an jedem Programmpunkt wissen,
Mehr2.3 Implementierung und Anwendung von ADT Anwendung von ADT... am Beispiel "Stapel"
2.3 Implementierung und Anwendung von ADT 2.3.1 Anwendung von ADT. am Beispiel "Stapel" Ziel Implementierung einer Anwendung ohne Annahmen über die Implementierung der Typen Austauschen der Implementierung
MehrPraktikum Compilerbau Sitzung 9 Java Bytecode
Praktikum Compilerbau Sitzung 9 Java Bytecode Prof. Dr.-Ing. Gregor Snelting Matthias Braun und Sebastian Buchwald IPD Snelting, Lehrstuhl für Programmierparadigmen KIT Universität des Landes Baden-Württemberg
MehrKapitel 5: Interfaces
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 5: Interfaces Folie 82 : Einleitung Betrachtet man die Programmierleistung für ein Produkt über einen längeren Zeitraum,
MehrGrundlagen der Modellierung und Programmierung, Übung
Grundlagen der Modellierung und Programmierung Übung Prof. Wolfram Amme LS Softwaretechnik Prof. Klaus Küspert LS Datenbanksysteme Prof. Birgitta König-Ries LS Verteilte Systeme Prof. Dr. Wilhelm Rossak
MehrName: Seite 1. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.
Name: Seite 1 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie wird bei der Zusicherungsmethode die Zusicherung genannt, die vor Eintritt
MehrObjektorientierte Programmierung
Objektorientierte Programmierung WS 2006/2007 Klassen und Vererbung in Java Walter Binder Universität Lugano 2006-11-23 Objektorientierte Programmierung 1 Überblick Konstruktoren Verdecken versus Überschreiben
MehrInformatik II SS Der Kompilationsprozess (-phasen) Schreiben des Programms. Die Organisation eines typischen Compilers
Der Kompilationsprozess (-phasen) Informatik II SS 2004 Teil 6: Sprachen, Compiler und Theorie 7 Prof. Dr. Dieter Hogrefe Dipl.-Inform. Michael Ebner Lehrstuhl für Telematik Institut für Informatik Scanner
Mehr3. Übungsbesprechung Programmkonstruktion
3. Übungsbesprechung Programmkonstruktion Karl Gmeiner karl@complang.tuwien.ac.at November 16, 2011 K Gmeiner (karl@complang.tuwien.ac.at) 3. Übungsbesprechung PK November 16, 2011 1 / 22 Rückblick und
MehrInfo B VL 11: Innere Klassen/Collections
Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections
Mehr3. Java - Sprachkonstrukte I
Namen und Bezeichner Ein Programm (also Klasse) braucht einen Namen 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken,
MehrEinführung in die Informatik 2
Einführung in die Informatik 2 Listen & Bäume Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 SvenKosub@uni-konstanzde Sprechstunde: Freitag, 14:00-15:00 Uhr, onv Sommersemester
MehrADT: Verkettete Listen
ADT: Verkettete Listen Motivation I public class Bruch{ int zaehler, nenner; public Bruch(int zaehler, int nenner) { this.zaehler= zaehler; this.nenner = nenner; Konstruktor zum Initialisieren der Werte
MehrProgrammieren 2 Java Überblick
Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10
Mehrpublic static void replace(stringbuffer b) { for (int i = 0; i < b.length(); i++) { char replacechar; switch( b.charat(i) ) {
Klausur aus Softwareentwicklung 1 Klausur am 3.2.2005 Institut für Pervasive Computing Univ.-Prof. Dr. Alois Ferscha Zuname Vorname Matr. Nr. SKZ HS Sitzplatz Punkte Note 1.Mehrfachverzweigung In einem
MehrKapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt
MehrBäume 1. Thomas Röfer
Bäume Thomas Röfer Preisverleihung Begriffsdefinitionen Eigenschaften Implementierung von Bäumen Durchlaufen von Bäumen Breitensuche/Tiefensuche Huffman-Kodierung Rückblick Sortieren Permutieren nach Dijkstra
MehrEnhanced Collection API
Enhanced Collection API Die default und static Methoden der Collection API des JDK 1.8 Prof. Dr. Nikolaus Wulff Schnittstelle und Implementierung Die Sprache Java trennte von Anfang an eine Schnittstelle
MehrSprachtechnologie und Compiler
Sprachtechnologie und Compiler Prof. Dr.-Ing. Gregor Snelting Überarbeitung: Matthias Braun, Sebastian Buchwald, Manuel Mohr, Andreas Zwinkau Einige Teile basieren auf Unterlagen von Prof. em. Dr. Dr.
MehrGraphalgorithmen. Graphen
(Folie 270, Seite 67 im Skript) Graphen (Folie 271, Seite 67 im Skript) Graphen Definition Ein ungerichteter Graph ist ein Paar (V, E), wobei V die Menge der Knoten und E ( V 2) die Menge der Kanten ist.
MehrOPP II Klausuraufgaben - Schnittstellen
OPP II Klausuraufgaben - Schnittstellen (I.) Versuchen Sie alle Aufgaben wie in der Klausur am Schreibtisch zu lösen! Halten Sie es aus, nicht sofort die Lösung zu erkennen! Diese Aufgaben(und speziell
Mehr5.14 Generics. Xiaoyi Jiang Informatik I Grundlagen der Programmierung
Motivation für Generics: Containertypen speichern eine Anzahl von Elementen anderer Typen Wie definiert man die Containerklasse ArrayList? In der Definition könnte man als Elementtyp Object angeben maximale
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 217 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Graphen, Suchbäume, AVL Bäume Heute: Graphen und Bäume Binäre Suchbäume AVL-Bäume Nächste
MehrProf. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen
Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Anonyme Klassen
MehrPaket umfaßt alle Dateien bzw. Klassen im selben Ordner. Kürzer durch Import-Deklaration (am Dateianfang)
Pakete eine public Klasse pro Datei Paket umfaßt alle Dateien bzw. Klassen im selben Ordner explizite Paketdeklaration: package paketname; Aufruf von foo() in der Datei myclasses/test/aclass.java: myclasses.test.aclass.foo()
MehrTeil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen
Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für
MehrIn C und Java müssen Variablen und Methodenergebnisse durch Typangaben erläutert werden. Welche der folgenden Aussagen sind korrekt und welche nicht:
Typprüfung (Compiler / Laufzeit) In C und Java müssen Variablen und Methodenergebnisse durch Typangaben erläutert werden. Welche der folgenden Aussagen sind korrekt und welche nicht: 1) Der Compiler prüft
MehrKapitel 4: Datentyp Keller und Schlange
Kapitel 4: Datentyp Keller und Schlange Keller (Stack) Schlange (Queue) 4-1 Definition Keller und seine Operationen Ein Keller (engl. Stack; Stapel) ist eine endliche Menge von Elementen mit einer LIFO-Organisation
Mehr22. Subtyping, Polymorphie und Vererbung
741 Letzte Woche: Ausdrucksbäume 742 22. Subtyping, Polymorphie und Vererbung Ausdrückbäume, Aufgabenteilung und Modularisierung, Typhierarchien, virtuelle Funktionen, dynamische Bindung, Code-Wiederverwendung,
MehrEinfache Datentypen in JAVA
5.4.1. Einfache Datentypen in JAVA Ganzzahlige Datentypen byte 8 bits -128
MehrAufgabe 1 (Programmanalyse):
Prof. aa Dr. J. Giesl Programmierung WS14/15 C. Aschermann, F. Frohn, J. Hensel, T. Ströder Aufgabe 1 (Programmanalyse): (14 Punkte) Geben Sie die Ausgabe des folgenden Java-Programms für den Aufruf java
MehrTeil 1: Suchen. Ausgeglichene Bäume B-Bäume Digitale Suchbäume. M.O.Franz, Oktober 2007 Algorithmen und Datenstrukturen - Binärbäume 1-1
Teil : Suchen Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume (Wiederholung aus Prog 2) Bäume: Begriffe, Eigenschaften und Traversierung Binäre Suchbäume Gefädelte Suchbäume Ausgeglichene
MehrÜbungsstunde 10. Einführung in die Programmierung I
Übungsstunde 10 Einführung in die Programmierung I Probleme bei Übung 9 [TODO Assistent] Nachbesprechung Übung 10 Aufgabe 1 Comparable boolean lessthan(comparable other) Ziel: Schreiben von Methoden,
MehrBäume, Anwendung und Begriffe
Bäume Sie wissen, was Bäume in der Informatik sind Sie kennen das Besucher-Entwurfsmuster Sie kennen Binärbäume Sie können die Bäume auf unterschiedliche Arten traversieren Sie wissen, wie man in Binärbäumen
MehrSpecial on Design Patterns Übungen zur objektorientierten Programmierung und Modellierung
Special on Design Patterns Übungen zur objektorientierten Programmierung und Modellierung Prof. Dr. Ralf Lämmel L / Dr. Manfred Jackel WS 2007-8 Universität t Koblenz-Landau Entwurfsmuster Bewährte, generische
MehrWintersemester 2004/ Januar Aus der Vorlesung sind Datenstrukturen zur Repräsentation von Wäldern disjunkter Mengen bekannt.
Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim
MehrJava Grundlagen 2 - OOP
Institut für Programmierung und Reaktive Systeme Java Grundlagen 2 - OOP Markus Reschke 20.08.2014 Eine kleine Geschichte 1 Spezifikation Es sollen Formen in einer GUI angezeigt werden: Ein Quadrat, ein
MehrProgrammieren in Java
Programmieren in Java Vorlesung 04: Rekursive Klassen Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 56 Inhalt
Mehr12.1 Das Schlüsselwort super
12.1 Das Schlüsselwort super Manchmal ist es erforderlich, in der Unterklasse explizit die Konstruktoren oder Objekt-Methoden der Oberklasse aufzurufen. Das ist der Fall, wenn Konstruktoren der Oberklasse
MehrAllgemeine Informatik II SS :30-13:30 Uhr
TU Darmstadt FB Informatik Prof. J. Fürnkranz Vordiplomsklausur - Lösungsvorschlag Allgemeine Informatik II SS 2005 15.09.2005 11:30-13:30 Uhr Hinweise: Als Hilfsmittel ist nur ein schwarzer oder blauer
MehrVariablenarten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java
Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 10.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 10.12.07 1 / 15
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrInformatik II - Übung 07
Informatik II - Übung 07 Katja Wolff katja.wolff@inf.ethz.ch Besprechung Übungsblatt 6 Informatik II Übung 07 12.04.2017 2 Übungsblatt 6 1.) Klassen, Schnittstellen, Typumwandlung 2.) Schnittstellen und
MehrKapitel 11: Bäume. Beispiele Definition und Eigenschaften Implementierungen Durchlaufen von Bäumen Binäre Suchbäume
Kapitel 11: Bäume Beispiele Definition und Eigenschaften Implementierungen Durchlaufen von Bäumen Binäre Suchbäume Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik II Bäume WS 17/18 11-1 Beispiele
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/2015 1 / 32 Schablonen (templates) UML: Zustandsdiagramme Zustandsmuster Interpreter 2 / 32
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG GRUNDLAGEN Tobias Witt!! 24.03.2014 ORGANISATORISCHES 09:00-10:30! Täglich Übungen zur Vertiefung! Laptop hier nicht erforderlich! Linux, OS X! Freitag: http://hhu-fscs.de/linux-install-party/
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/2015 1 / 32 Schablonen (templates) UML: Zustandsdiagramme Zustandsmuster Interpreter 2 / 32
MehrADT: Verkettete Listen
ADT: Verkettete Listen Abstrakter typ - Definition public class Bruch int zaehler, nenner; public Bruch(int zaehler, int nenner) this.zaehler = zaehler; this.nenner = nenner; Konstruktor zum Initialisieren
MehrProgrammieren I. Kapitel 10. Spezielle Features
Programmieren I Kapitel 10. Spezielle Features Kapitel 10: Spezielle Features Ziel: Besonderheiten von Java bei OO Konzepten statische Attribute und Methoden innere, verschachtelte und lokale Klassen anonyme
MehrAnweisungen zur Ablaufsteuerung
Anweisungen zur Ablaufsteuerung if-else switch while do-while for Ausdrücke Ein Ausdruck ist eine Folge von Variablen, Operatoren und Methodenaufrufen, der zu einem einzelnen Wert ausgewertet wird. Operanden
Mehr