Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes

Größe: px
Ab Seite anzeigen:

Download "Grundlagen der Informatik III Wintersemester 2010/2011 22. Vorlesung Dr.-Ing. Wolfgang Heenes"

Transkript

1 Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes int main() { printf("hello, world!"); return 0; } msg: main:.data.asciiz "Hello, world!".text.globl main la $a0,msg li $v0,4 syscall jr $ra 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 1

2 Inhalt 1. Literatur 2. Compiler III 3. Lexikalische Analyse 4. Symboltabellen 5. Zwischencodegenerierung 6. Zusammenfassung der Phasen der Übersetzung 7. Ausgewählte Probleme 8. Lex und Yacc 9. Zusammenfassung und Ausblick 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 2

3 Literatur [ALSU08] Aho, Alfred V., Monica S. Lam, Ravi Sethi und Jeffrey D. Ullmann: Compiler - Prinzipien, Techniken und Werkzeuge. Pearson, [BO10] Bryant, Randal E. und David R. O Hallaron: Computer Systems - A Programmer s Perspective. Prentice Hall, Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 3

4 Compiler III Wiederholung Grammatiken zur Syntaxbeschreibung Syntaxanalyse Parse-Bäume Im Folgenden Lexikalische Analyse Symboltabellen Zwischencodegenerierung Zusammenfassung der Phasen der Übersetzung Ausgewählte Probleme Lex und Yacc 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 4

5 Lexikalische Analyse I Modell des Compiler-Front-Ends Abbildung: Quelle: [ALSU08, S. 51] Lexikalische Analyse gruppiert Eingabezeichen zu Tokenobjekten 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 5

6 Lexikalische Analyse II Lexikalische Analyse gruppiert Eingabezeichen zu Tokenobjekten Neben einem Terminal, das für Parsing-Entscheidungen verwendet wird, enthalten Tokenobjekte zusätzliche Informationen in der Form von Attributwerten Bisher keine Unterscheidung zwischen den Begriffen Token und Terminal Token ist ein Terminal mit zusätzlichen Symbolen Erinnerung: Die Sequenz von Eingabezeichen, die ein einzelnes Token bildet, wird als Lexem bezeichnet Aufgaben der lexikalischen Analyse sind außerdem: Entfernen von Leerzeichen und Kommentaren 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 6

7 Lexikalische Analyse III Viele Sprachen lassen beliebig viele Leerzeichen zu werden bei der Analyse ignoriert Auch Kommentare können ignoriert werden Wenn z. B. Leerzeichen vom lexikalischen Scanner elimniert werden, muss der Parser sich keine Gedanken machen Pseudoalgorithmus for ( ; ; peek = nächstes Eingabezeichen) { if (peek ist leer oder Tabulatorsprung) tue nichts; else if (peek ist Zeilenumbruchzeichen) line = line + 1; else break; } Zeilennummern sind für Fehlermeldungen nützlich line zählt die Anzahl der Zeilenumbruchzeichen 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 7

8 Lexikalische Analyse IV Vorausschauendes Lesen: Ein lexikalischer Scanner muss gegebenfalls einige Zeichen im Voraus lesen, um feststellen zu können, welches Token an den Parser zurückgegeben werden muss Ein lexikalischer Scanner (z. B. für C) muss Zeichen vom Voraus lesen, nachdem er das Zeichen > gefunden hat Ist das folgende Zeichen das Gleichheitszeichen =, dass ist > Teil der Zeichensequenz >= >= Lexem des Tokens für den Operator größer oder gleich Andernfalls stellt > den Operator größer als dar Scanner hat ein Zeichen zu viel gelesen Realisierung eines Eingabepuffers effizienter, Zeichenblöcke zu verarbeiten Es gibt aber auch Operatoren z. B. * die ohne Vorauslesen identifiziert werden 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 8

9 Lexikalische Analyse V Erkennen von Schlüsselwörtern und Bezeichnern: Die meisten Sprachen verwenden feste Zeichenketten (z. B. for, do und if) zur Identifizierung von Konstrukten Zeichenkette wird als Schlüsselwort bezeichnet Zeichenketten werden als Bezeichner für Variablen, Arrayzugriffe, Funktionen usw. verwendet Grammatiken behandeln Bezeichner als Terminale, um den Parser zu vereinfachen Der Parser erwartet dann, wenn ein Bezeichner Teil der Eingabe ist, das gleiche Terminal, z. B. id Eingabe von count = count + increment; Der Parser arbeitet dann den Terminalstream id = id + id ab. Token id hat ein Attribut, das das Lexem speichert <id, count > <=> <id, count > <+> <id, increment > <;> 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 9

10 Lexikalische Analyse VI Da Schlüsselwörter den Regeln zur Erstellung von Bezeichnern entsprechen, muss ein Mechanismus gefunden werden, anhand dessen festgelegt werden kann, wann ein Lexem ein Schlüsselwort ist und wann es einen Bezeichner bildet Problem ist einfacher zu lösen, wenn Schlüsselwörter reserviert sind dürfen dann nicht als Bezeichner verwendet werden In ABAP können identische Zeichenketten für Bezeichner und Schlüsselworte verwendet werden (außerdem ist + nicht gleich + ) Zeichenketten können nur dann Bezeichner sein, wenn sie kein Schlüsselwort sind Scanner kann in einer Tabelle auf die reservierten Wörter zugreifen und einfach unterscheiden, ist es ein Bezeichner oder Schlüsselwort Pseudocode, weitere Erläuterungen [ALSU08, S. 98 f.] 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 10

11 Symboltabellen I Bei Symboltabellen handelt es sich um Datenstrukturen, die von Compilern zur Speicherung von Informationen über Quellprogrammkonstrukte verwendet werden. Die Informationen (= Symboltabelleneinträge) werden schrittweise während der Analysephase des Compilers gesammelt und in der Synthesephase verwendet, um den Zielcode zu erstellen Einträge in der Symboltabelle enthalten Informationen über einen Bezeichner (z. B. Zeichenstring), seinen Typ, seinen Speicherplatz Symboltabellen müssen normalerweise mehrere Deklarationen des gleichen Bezeichners in einem Programm unterstützen können Gültigkeitsbereich einer Deklaration ist der Teil eines Programms, für das die Deklaration zutrifft Für jeden Gültigkeitsbereich wird eine separate Symboltabelle eingerichtet 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 11

12 Symboltabellen II Pseudocode: Indizes werden verwendet, um zwischen verschiedenen Deklarationen des gleichen Bezeichners zu unterscheiden 1) {int x1; int y1; 2) {int w2; bool y2; int z2; 3)...w2...;...x1...;...y2...;...z2...; 4) } 5)...w0...;...x1...;...y1...; 6) } Achtung: Index ist nicht Teil des Bezeichners 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 12

13 Symboltabellen III Das Vorkommen von y in Zeile 3 befindet sich im Gültigkeitsbereich von y in Zeile 2, da y innerhalb eines inneren Blocks neu deklariert wird Das Vorkommen von y in Zeile 5 liegt jedoch im Gültigkeitsbereich der Deklaration von y in Zeile 1 Das Vorkommen von w in Zeile 5 liegt wahrscheinlich innerhalb des Gültigkeitsbereichs einer Deklaration von w außerhalb dieses Codefragments mit Index 0 wird eine Deklaration angegeben, die entweder global ist oder außerhalb dieses Blocks liegt Deklaration von z kann nur innerhalb des verschachtelten Blocks verwendet werden. 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 13

14 Symboltabellen IV Symboltabellen werden miteinander verkettet Abbildung: Quelle: [ALSU08, S. 108] 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 14

15 Zwischencodegenerierung I Zwischencodegenerierung, zwei Möglichkeiten Bäume, Parse-Bäume und abstrakte Syntaxbäume Lineare Darstellung Drei-Adress-Code Das Compiler-Front-End erstellt aber nicht nur eine Zwischendarstellung, sondern überprüpft auch, ob das Quellprogramm den syntaktischen und semantischen Regeln der Quellsprache folgt Diese Prüfung wird auch als statische Überprüfung 1 bezeichnet Ableitung des Drei-Adress-Codes aus Syntaxbaum 1 dynamische Überprüfung z. B. in Java 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 15

16 Zwischencodegenerierung II Drei-Adress-Befehle Bei Drei-Adress-Code handelt es sich um Befehl im Format x = y op z x, y und z sind Namen, Konstanten oder temporäre Werte Arrayzugriff kann durch folgende Befehlsvariante realisiert werden x [y] = z x = y[z] Drei-Adress-Befehle werden nacheinander ausgeführt, Ausnahme bedingte oder unbedingte Sprünge if False x goto L if True A goto L goto L Kopieren von Werten x = y 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 16

17 Zwischencodegenerierung III Syntaxbaum Teil eines Syntaxbaums Abbildung: Quelle: [ALSU08, S. 118] 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 17

18 Zwischencodegenerierung IV Übersetzung von Ausdrücken Aufgabe: Übersetzen einfacher Ausdrücke: i - j + k Für jeden Operatorknoten im Syntaxbaum eines Ausdrucks wird nun ein Drei-Adress-Befehl generiert Dazu werden auch temporäre Namen verwegen Obiges Konstrukt wird zu t1 = i - j t2 = t1 + k Arrayzugriff: a[i] = 2 * a[j-k] Übersetzung aus Syntaxbaum zu: t3 = j - k t2 = a[t3] t1 = 2 * t2 a[i] = t1 Pseudocode vgl. [ALSU08, S. 125 ff.] 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 18

19 Zusammenfassung: Phasen der Übersetzung I Abbildung: Quelle: [ALSU08, S. 130] 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 19

20 Zusammenfassung: Phasen der Übersetzung II Ausgangspunkt bei einem syntaxgerichteten Übersetzer ist eine Grammatik für die Quellsprache Mit der Grammatik wird die hierarchische Struktur von Programmen beschrieben Grammatik wird mit grundlegenden Symbolen (Terminale) und variablen Symbolen (Nichtterminale) definiert Symbole stellen Sprachkonstrukte dar Die Regeln der Grammatik werden als Produktionen bezeichnet Produktionen bestehen aus Nichtermial (oder Kopf, linke Seite) und einer Sequenz von Terminalen und Nichtterminalen Rechte Seite ist der Rumpf der Produktion Ein Nichtermial wird als Startsymbol festgelegt 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 20

21 Zusammenfassung: Phasen der Übersetzung III Bei der Spezifikation eines Übersetzers ist es hilfreich, Programmierkonstrukten Attribute hinzuzufügen Konstrukte werden durch Grammatiksymbole dargestellt Attributkonzept wird auf Grammatiksymbole ausgeweitet Beispiel für Attribute: ein mit einem Terminal num verknüpfter Integerwert 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 21

22 Zusammenfassung: Phasen der Übersetzung IV Ein lexikalischer Scanner liest bei der Eingabe einzelne Zeichen und erstellt einen Tokenstream als Ausgabe, wobei ein Token aus einem Terminalsymbol mit zusätzlichen Informationen in der Form von Attributwerten besteht. Schreibweise der Token z. B. als Tupel und in < > eingeschlossen Beispiel: Token (id, peek ) besteht aus dem Terminal id und einem Zeiger auf den Symboltabelleneintrag, der den String peek enthält. Der Übersetzer verwendet die Tabelle, um reservierte Wörter und Bezeichner, die bereits aufgetreten sind, zu verfolgen 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 22

23 Zusammenfassung: Phasen der Übersetzung V Die Syntaxanalyse (Parsing) wird dazu verwendet, beginnend mit dem Startsymbol einer Grammatik einen String mit Terminalen abzuleiten, indem ein Nichtterminal durch den Rumpf einer seiner Produktionen ersetzt wird Der Parser erstellt einen Parse-Baum, in dem die Wurzel mit dem Startsymbol bezeichnet wird, jeder interne Knoten einer Produktion entspricht und jedes Blatt mit einem Terminal oder dem leeren String ɛ gekennzeichnet wird. Die syntaxgerichtete Übersetzung erfolgt, indem den Produktionen in einer Grammatik entweder Regeln oder Programmfragmente hinzugefügt werden. Eingebettete Programmfragmente werden auch semantische Aktionen genannt Das Ergebnis der Syntaxanalyse wird als Zwischencode bezeichnet abstrakter Syntaxbaum, Drei-Adress-Code 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 23

24 Zusammenfassung: Phasen der Übersetzung VI Symboltabellen sind Datenstrukturen, in denen Informationen über Bezeichner gespeichert werden. Diese Informationen werden der Tabelle hinzugefügt, wenn die Deklaration eines Bezeichners analysiert wird Eine semantische Aktion ruft Informationen aus der Symboltabelle ab Ausführliche (wenn auch nicht immer ganz einfach verständliche) Informationen mit Beispiel im Pseudocode sind in [ALSU08] dargestellt 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 24

25 Ausgewählte Probleme I Registervergabe Für die Programmierung in Assembler ist eine Übersicht der Register wichtig Programmiermodell für die IA32-Architektur Abbildung: Quelle: [BO10, S. 202] Abbildung der Zwischencodes (in dem potentiell sehr viele Variablen benutzt werden können) auf eine Maschine mit 8 Registern 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 25

26 Ausgewählte Probleme II Registervergabe Ein wesentliches Problem bei der Codeerzeugung ist die Entscheidung, welche Werte in welchen Registern abgelegt werden sollen Erinnerung: Speicherhierarchie (langsamer Hauptspeicher, schneller Registerspeicher) Bei der Codeerzeugung muss darauf geachtet werden, eine optimale Zuweisung von Registern zu Variablen zu finden Und das ist selbst bei Maschinen mit nur einem Register ggf. schwierig Mathematisch gesehen ist das Problem NP-vollständig Komplexität wird dadurch gesteigert, dass Prozessoren evt. bestimmte Konventionen für die Registernutzung haben Im Prinzip kann man Register für die Aufnahme von Werten für die Dauer eines Blocks zuweisen 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 26

27 Ausgewählte Probleme III Registervergabe Globale Registervergabe kann z. B. für eine feste Anzahl von Registern für die aktivsten Werten jeder Schleife vorgenommen werden In frühen C-Compilern konnte der Programmierer einen Teil der Register explizit vergeben Datentyp register Überlegte Einsatz von Registern beschleunigte viele Programme Aber: Programmierer musste ein Profil der Programme erstellen, um die entscheidenden Programmstellen zu ermitteln Reminder: Schlüsselwort register immernoch vorhanden, Analyse hat aber gezeigt, das es ignoriert wird Verwendungszähler, Registervergabe durch Graphfärbung (vgl. [ALSU08, S. 679]) 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 27

28 Ausgewählte Probleme IV Peephole-Optimierung Eine Möglichkeit der Verbesserung des Zielcodes ist die Peephole 2 -Optimierung (vgl. [ALSU08, S. 670]) Das Guckloch ist ein kleines verschiebares Fenster zu einem Programm Charakteristische Beispiele für Programmtransformationen Beseitigung redundanter Befehle Optimierung des Kontrollflusses Algebraische Vereinfachung 2 Guckloch 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 28

29 Ausgewählte Probleme V Peephole-Optimierung Entfernen redundanter Lade- und Speicherbefehle Zielprogramm hat folgenden Code LD R0,a ST a,r0 Speicherbefehl nicht notwendig 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 29

30 Ausgewählte Probleme VI Peephole-Optimierung Entfernen von unerreichbaren Codes Ein Befehl ohne Sprungmarke direkt hinter einem unbedingten Sprung kann gelöscht werden Weiteres Beispiel if debug == 1 goto L1 goto L2 L1: print debugging information L2:... Optimierung durch Beseitigung von Sprüngen if debug!= 1 goto L2 print debugging information L2: Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 30

31 Ausgewählte Probleme VII Peephole-Optimierung Optimierung des Kontrollflusses goto L1... L1: goto L2 Wird durch folgende Konstruktion ersetzt goto L2... L1: goto L2 Weitere Optimierungen: Gibt es keine Sprünge mehr zu L1, kann die Anweisung L1: goto L2 gelöscht werden Vorausgesetzt, davor steht ein unbedingter Sprung 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 31

32 Ausgewählte Probleme VII Peephole-Optimierung Algebraische Vereinfachung und Kostenreduzierung Oder x = x + 0 x = x * 1 Reminder: Multiplikation und Division 2 wird durch Shift-Befehle realisiert Für die Gleichung d = a b a c werden 2 Multiplikationen und eine Subtraktion benötigt. Die Gleichung kann umgeformt werden: d = a b a c d = a (b c) Außerdem: Common Subexpression Elimination, Zusammenfassen von Ausdrücken 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 32

33 Lex und Yacc Im Prinzip ist der Entwurf von Compilern für eine Sprache sehr reguläres Problem Für eine Sprache liegt eine Grammatik vor Warum nicht automatisierte Generierung für lexikalische Scanner? Tool: Lex bzw. Flex ist ein solcher Scanner (vgl. [ALSU08, S. 170 ff.]) Eingabesprache wird als Lex-Sprache bezeichnet, das Tool selbst als Lex-Compiler Struktur eines Lex-Programms Deklaration %% Übersetzungsregeln %% Hilfsfunktionen 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 33

34 Lex und Yacc Yacc ist ein Parsergenerator (vgl. [ALSU08, S. 343 ff.]) Erleichterung beim Bau eines Compiler-Front-Ends Deklaration %% Übersetzungsregeln %% Unterstützende C-Routinen 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 34

35 C2H Compiler Compiler: Sprachübersetzer Quellsprache C, Zielsprache HDL 3 Wird verwendet für Designspezifikation (auf unterschiedlichen Ebenen), Simulation, Verifikation und Dokumentation Aber auch Synthese für Zielarchitekturen (ASIC bzw. FPGA) C2H Compiler übersetzt C-Quellcode in eine Hardwarebeschreibungssprache Welchen Sinn macht das? Problem: Sequentielle Beschreibung Zielarchitektur arbeitet parallel 3 Hardware Description Language 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 35

36 Weiterführende Veranstaltung und Forschung am Fachbereich Informatik FG Eingebettete Systeme und ihre Anwendungen Prof. Dr. A. Koch Vorlesung: Optimierende Compiler im Sommersemester 2011 Grundkenntnisse Algorithmen und Datenstrukturen Java Rechnerarchitektur (erworben z. B. durch Technische Grundlagen der Informatik) Praktikum: Compiler für Java-artige Sprache und MIPS Forschung: Entwurf adaptiver Rechensysteme 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 36

37 Zusammenfassung und Ausblick Compiler III Nächste Vorlesung behandelt Betriebssysteme I 19. Januar 2011 TechnischeUniversitätDarmstadt Dr.-Ing. Wolfgang Heenes 37

2.11 Kontextfreie Grammatiken und Parsebäume

2.11 Kontextfreie Grammatiken und Parsebäume 2.11 Kontextfreie Grammatiken und Parsebäume Beispiel: Beispiel (Teil 3): Beweis für L(G) L: Alle Strings aus L der Länge 0 und 2 sind auch in L(G). Als Induktionsannahme gehen wir davon aus, dass alle

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen 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

Mehr

Kapitel 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 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

Mehr

Was ist ein Compiler?

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

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Fachseminar WS 2008/09

Fachseminar 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

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

Grundbegriffe der Informatik

Grundbegriffe 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

Praktikum Compilerbau

Praktikum 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

Mehr

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.

Mehr

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Die Regeln zur Bildung korrekter Wörter einer Sprache kann man in einer natürlichen Sprache formulieren. Da dies jedoch wieder Mehrdeutigkeiten mit

Mehr

Formale Sprachen und Grammatiken

Formale 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

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Theoretische Informatik I

Theoretische 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

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

Visual Basic Express Debugging

Visual Basic Express Debugging Inhalt Dokument Beschreibung... 1 Projekt vorbereiten... 1 Verknüpfung zu Autocad/ProStructures einstellen... 2 Debugging... 4 Autocad/ProSteel Beispiel... 5 Dokument Beschreibung Debuggen nennt man das

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

IT-Basics 2. DI Gerhard Fließ

IT-Basics 2. DI Gerhard Fließ IT-Basics 2 DI Gerhard Fließ Wer bin ich? DI Gerhard Fließ Telematik Studium an der TU Graz Softwareentwickler XiTrust www.xitrust.com www.tugraz.at Worum geht es? Objektorientierte Programmierung Konzepte

Mehr

Praktische Mathematik: Lineare und Netzwerk-Optimierung (SS 2015) Praktikumsaufgaben

Praktische Mathematik: Lineare und Netzwerk-Optimierung (SS 2015) Praktikumsaufgaben Technische Universität Kaiserslautern Prof Dr Sven O Krumke Dr Sabine Büttner MSc Marco Natale Praktische Mathematik: Lineare und Netzwerk-Optimierung (SS 2015) Praktikumsaufgaben Aufgabe 1 (Konvertieren

Mehr

10 Erweiterung und Portierung

10 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

Mehr

Übungen zu C++ Kapitel 1

Übungen zu C++ Kapitel 1 Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Algorithmen mit Python

Algorithmen 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

Mehr

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Übersetzergenerierung mit lex und yacc

Ü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

Mehr

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern 1 Einleitung Lernziele Symbolleiste für den Schnellzugriff anpassen Notizenseiten drucken eine Präsentation abwärtskompatibel speichern eine Präsentation auf CD oder USB-Stick speichern Lerndauer 4 Minuten

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden. In einer Website haben Seiten oft das gleiche Layout. Speziell beim Einsatz von Tabellen, in denen die Navigation auf der linken oder rechten Seite, oben oder unten eingesetzt wird. Diese Anteile der Website

Mehr

Einführung in die Systemprogrammierung

Einfü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

Mehr

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

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen reguläre Grammatiken/prachen Beschreibung für Bezeichner in Programmiersprachen Beschreibung für wild cards in kriptsprachen (/* reguläre Ausdrücke */)?; [a-z]; * kontextfreie Grammatiken/prachen Beschreibung

Mehr

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

Zahlensysteme: Oktal- und Hexadezimalsystem

Zahlensysteme: Oktal- und Hexadezimalsystem 20 Brückenkurs Die gebräuchlichste Bitfolge umfasst 8 Bits, sie deckt also 2 8 =256 Möglichkeiten ab, und wird ein Byte genannt. Zwei Bytes, also 16 Bits, bilden ein Wort, und 4 Bytes, also 32 Bits, formen

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel. Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische nformatik inheit 3 Kontextfreie Sprachen 1. Kontextfreie Grammatiken 2. Pushdown Automaten 3. igenschaften kontextfreier Sprachen Theoretische nformatik inheit 3.1 Kontextfreie Grammatiken

Mehr

1 Dokumentenmanagement

1 Dokumentenmanagement 1 Dokumentenmanagement Das Dokumentenmanagement des GV Büro-System ist ein äußerst leistungsfähiges und mächtiges Tool. Es ist in der Lage, nahezu sämtliche Arten von Dokumenten auf einfache Art und Weise

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Empfehlungen zur Nutzung der CD zum Buch: Klee & Wiemann: Beweglichkeit und Dehnfähigkeit. Schorndorf: Hofmann, 2005. 1

Empfehlungen zur Nutzung der CD zum Buch: Klee & Wiemann: Beweglichkeit und Dehnfähigkeit. Schorndorf: Hofmann, 2005. 1 Empfehlungen zur Nutzung der CD zum Buch: Klee & Wiemann: Beweglichkeit und Dehnfähigkeit. Schorndorf: Hofmann, 2005. 1 Starten der CD Nach dem Einlegen der CD in Ihr CD-Laufwerk müsste die CD von selbst

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

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

Mehr

Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie

Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie Wintersemester 2009/10, Prof. Dr. Udo Hahn, Erik Fäßler Übungsblatt 3 vom 19.11.2009 Abgabe bis 26.11.2009, 14:30 Uhr; per

Mehr

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt AMPEL-Steuerung(en) Die Beschreibung und Programmierung der Ampel (vor allem Ampel_5) können sehr kompliziert

Mehr

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007 Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

Festplatte defragmentieren Internetspuren und temporäre Dateien löschen

Festplatte defragmentieren Internetspuren und temporäre Dateien löschen Festplatte defragmentieren Internetspuren und temporäre Dateien löschen Wer viel mit dem Computer arbeitet kennt das Gefühl, dass die Maschine immer langsamer arbeitet und immer mehr Zeit braucht um aufzustarten.

Mehr

Excel Funktionen durch eigene Funktionen erweitern.

Excel Funktionen durch eigene Funktionen erweitern. Excel Funktionen durch eigene Funktionen erweitern. Excel bietet eine große Anzahl an Funktionen für viele Anwendungsbereiche an. Doch es kommt hin und wieder vor, dass man die eine oder andere Funktion

Mehr

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Second Steps in eport 2.0 So ordern Sie Credits und Berichte Second Steps in eport 2.0 So ordern Sie Credits und Berichte Schritt 1: Credits kaufen, um Zugangscodes generieren zu können Wählen Sie Credits verwalten und klicken Sie auf Credits kaufen. Geben Sie nun

Mehr

Kostenstellen verwalten. Tipps & Tricks

Kostenstellen verwalten. Tipps & Tricks Tipps & Tricks INHALT SEITE 1.1 Kostenstellen erstellen 3 13 1.3 Zugriffsberechtigungen überprüfen 30 2 1.1 Kostenstellen erstellen Mein Profil 3 1.1 Kostenstellen erstellen Kostenstelle(n) verwalten 4

Mehr

trivum Multiroom System Konfigurations- Anleitung Erstellen eines RS232 Protokolls am Bespiel eines Marantz SR7005

trivum Multiroom System Konfigurations- Anleitung Erstellen eines RS232 Protokolls am Bespiel eines Marantz SR7005 trivum Multiroom System Konfigurations- Anleitung Erstellen eines RS232 Protokolls am Bespiel eines Marantz SR7005 2 Inhalt 1. Anleitung zum Einbinden eines über RS232 zu steuernden Devices...3 1.2 Konfiguration

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Informatik I Tutorial

Informatik I Tutorial ETH Zürich, D-INFK/D-BAUG Herbstsemester 2015 Dr. Martin Hirt Daniel Jost Informatik I Tutorial Dieses Tutorial hat zum Ziel, die notwendigen Tools auf dem eigenen Computer zu installieren, so dass ihr

Mehr

Einführung zum Arbeiten mit Microsoft Visual C++ 2010 Express Edition

Einführung zum Arbeiten mit Microsoft Visual C++ 2010 Express Edition In den nachfolgenden Schritten finden Sie beschrieben, wie Sie in der Entwicklungsumgebung Microsoft Visual Studio 2010 eine Projektmappe, ein Projekt und einen ersten Quellcode erstellen, diesen kompilieren,

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe Tutorium Informatik 1 Aufgabe 2: Formatierte Ein- und Ausgabe Fachbereich: Elektrotechnik Inhaltsverzeichnis 1 Aufgabe 1 2 Benötigte Funktionen und Schlüsselwörter 2 Robert Halas / FH Regensburg - 2003

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Inhaltsverzeichnis 1. Anmeldung... 2 1.1 Startbildschirm... 3 2. Die PDF-Dateien hochladen... 4 2.1 Neue PDF-Datei erstellen... 5 3. Obelix-Datei

Mehr

Binäre Bäume Darstellung und Traversierung

Binäre Bäume Darstellung und Traversierung Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail fb641378@inf.tu-dresden.de Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.

Mehr

Informatik 1 Tutorial

Informatik 1 Tutorial ETH Zürich, D-INFK/D-BAUG Herbstsemester 2014 Dr. Martin Hirt Christian Badertscher Informatik 1 Tutorial Dieses Tutorial hat zum Ziel, die notwendigen Tools auf dem eigenen Computer zu installieren, so

Mehr

Zählen von Objekten einer bestimmten Klasse

Zählen von Objekten einer bestimmten Klasse Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --

Mehr

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Tutorial: Wie erfasse ich einen Termin? In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Neben den allgemeinen Angaben zu einem

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

C/C++ Programmierung

C/C++ Programmierung 1 C/C++ Programmierung Grundlagen: Anweisungen Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Anweisungen (Statements)

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren: 4. AUSSAGENLOGIK: SYNTAX 4.1 Objektsprache und Metasprache 4.2 Gebrauch und Erwähnung 4.3 Metavariablen: Verallgemeinerndes Sprechen über Ausdrücke von AL 4.4 Die Sprache der Aussagenlogik 4.5 Terminologie

Mehr

Sie werden sehen, dass Sie für uns nur noch den direkten PDF-Export benötigen. Warum?

Sie werden sehen, dass Sie für uns nur noch den direkten PDF-Export benötigen. Warum? Leitfaden zur Druckdatenerstellung Inhalt: 1. Download und Installation der ECI-Profile 2. Farbeinstellungen der Adobe Creative Suite Bitte beachten! In diesem kleinen Leitfaden möchten wir auf die Druckdatenerstellung

Mehr

t 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 )

t 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

Mehr

Local Control Network Technische Dokumentation

Local Control Network Technische Dokumentation Steuerung von Hifi-Anlagen mit der LCN-GVS Häufig wird der Wunsch geäußert, eine Hi-Fi-Anlage in die Steuerung der LCN-GVS einzubinden. Auch das ist realisierbar. Für die hier gezeigte Lösung müssen wenige

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Lehrstuhl Informatik VI Grundzüge der Informatik * WS 2008/2009 Prof. Dr. Joachim Biskup

Lehrstuhl 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

Mehr

3 ORDNER UND DATEIEN. 3.1 Ordner

3 ORDNER UND DATEIEN. 3.1 Ordner Ordner und Dateien PC-EINSTEIGER 3 ORDNER UND DATEIEN Themen in diesem Kapitel: Erstellung von Ordnern bzw Dateien Umbenennen von Datei- und Ordnernamen Speicherung von Daten 3.1 Ordner Ordner sind wie

Mehr

1 ÜBERSETZER. Compilerbau 1

1 Ü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.

Mehr

Übersicht... 2 Dateiupload... 3 Administratorfunktionen... 4

Übersicht... 2 Dateiupload... 3 Administratorfunktionen... 4 Inhalt Übersicht... 2 Dateiupload... 3 Administratorfunktionen... 4 Benutzer hinzufügen... 4 Benutzerverwaltung... 5 Ordner anlegen... 6 Rechteverwaltung... 7 Verlag für neue Medien Seite 1 Übersicht Mit

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele. 1. Einführung in die Informatik Inhalt 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele Peter Sobe 1 Darstellung von Algorithmen Aus den Einführungsbeispielen und

Mehr

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof Bedienungsanleitung für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof Matthias Haasler Version 0.4 Webadministrator, email: webadmin@rundkirche.de Inhaltsverzeichnis 1 Einführung

Mehr

Aufklappelemente anlegen

Aufklappelemente anlegen Aufklappelemente anlegen Dieses Dokument beschreibt die grundsätzliche Erstellung der Aufklappelemente in der mittleren und rechten Spalte. Login Melden Sie sich an der jeweiligen Website an, in dem Sie

Mehr

I Serverkalender in Thunderbird einrichten

I Serverkalender in Thunderbird einrichten I Serverkalender in Thunderbird einrichten Damit Sie den Kalender auf dem SC-IT-Server nutzen können, schreiben Sie bitte zuerst eine Mail mit Ihrer Absicht an das SC-IT (hilfe@servicecenter-khs.de). Dann

Mehr

Übungsblatt 3: Algorithmen in Java & Grammatiken

Übungsblatt 3: Algorithmen in Java & Grammatiken Humboldt-Universität zu Berlin Grundlagen der Programmierung (Vorlesung von Prof. Bothe) Institut für Informatik WS 15/16 Übungsblatt 3: Algorithmen in Java & Grammatiken Abgabe: bis 9:00 Uhr am 30.11.2015

Mehr

OPERATIONEN AUF EINER DATENBANK

OPERATIONEN AUF EINER DATENBANK Einführung 1 OPERATIONEN AUF EINER DATENBANK Ein Benutzer stellt eine Anfrage: Die Benutzer einer Datenbank können meist sowohl interaktiv als auch über Anwendungen Anfragen an eine Datenbank stellen:

Mehr

Anleitung zur Verwendung der VVW-Word-Vorlagen

Anleitung zur Verwendung der VVW-Word-Vorlagen Anleitung zur Verwendung der VVW-Word-Vorlagen v1.0. Feb-15 1 1 Vorwort Sehr geehrte Autorinnen und Autoren, wir haben für Sie eine Dokumentenvorlage für Microsoft Word entwickelt, um Ihnen die strukturierte

Mehr

iloq Privus Bedienungsanleitung Schließanlagen Programmierung Version 1 - Copyright 2013

iloq Privus Bedienungsanleitung Schließanlagen Programmierung Version 1 - Copyright 2013 iloq Privus Schließanlagen Programmierung Version 1 - Copyright 2013 Kurth Electronic GmbH Kommunikations- & Sicherheitssysteme / Im Scherbental 5 / 72800 Eningen u. A. Tel: +49-7121-9755-0 / Fax: +49-7121-9755-56

Mehr

Zur drittletzten Zeile scrollen

Zur drittletzten Zeile scrollen 1 Fragen und Antworten zur Computerbedienung Thema : Zur drittletzten Zeile scrollen Thema Stichwort Programm Letzte Anpassung Zur drittletzten Zeile scrollen Scrollen VBA Excel 1.02.2014 Kurzbeschreibung:

Mehr

Anleitung: Einrichtung der Fritz!Box 7272 mit VoIP Telefonanschluss

Anleitung: Einrichtung der Fritz!Box 7272 mit VoIP Telefonanschluss Schließen Sie die AVM Fritz!Box, wie auf dem der Fritz!Box beiliegenden Schaubild beschrieben, an. Starten Sie den Internet Explorer oder einen beliebigen Browser (Mozilla Firefox, Google Chrome, Safari)

Mehr