Zwischencodeerzeugung Compiler II
|
|
|
- Gert Fiedler
- vor 9 Jahren
- Abrufe
Transkript
1 Zwishenodeerzeugung Compiler II Prof. Dr. Ursula Goltz
2 Einleitung Front-End... Parser Sem. Analys Zwishenodegenerator Bak-End Codegenerator... Zwishendarstellung (Zwishenode) evtl. mashinennunabh. Optimierung Zwishenode Code für eine abstrakte Mashine. Vorteile Portabilität mashinenunbahängige Optimierung Prof. Dr. Ursula Goltz Zwishenodeerzeugung 2
3 Syntaxbaum Hierarhishe Struktur eines Quellprogramms (ohne Nihtterminale) Beispiel S id:= E E E + E E E E (E) id Prof. Dr. Ursula Goltz Zwishenodeerzeugung 3
4 Syntaxbaum Hierarhishe Struktur eines Quellprogramms (ohne Nihtterminale) Beispiel S id:= E E E + E E E E (E) id a:= b + b Prof. Dr. Ursula Goltz Zwishenodeerzeugung 3
5 Syntaxbaum Hierarhishe Struktur eines Quellprogramms (ohne Nihtterminale) Beispiel S id:= E E E + E E E E (E) id a:= b + b assign a + b uminus b uminus Prof. Dr. Ursula Goltz Zwishenodeerzeugung 3
6 Postfix-Notation Linearisierte Darstellung eines Syntaxbaums Operand 1 Operand 2... Operand n Operator Beispiel: a b uminus b uminus + assign Auswertung mit Hilfe eines Staks assign a + b uminus b uminus Prof. Dr. Ursula Goltz Zwishenodeerzeugung 4
7 Abstrake Stak-Mashine. Befehlssatz ADD SUB MUL LOAD v Addiere (Subtrahiere, Multipliziere) die beiden obersten Stak-Einträge, entferne sie, lege Ergebnis auf den Stak Lege Wert v auf den Stak ; sequentielle Komposition Prof. Dr. Ursula Goltz Zwishenodeerzeugung 5
8 Beispiel: Übersetzung von arithmetishen Ausdrüken 1/3 Arithmetishe Ausdrüke: E E + T E T E T T T F T F F (E) F 0 9 Prof. Dr. Ursula Goltz Zwishenodeerzeugung 6
9 Beispiel: Übersetzung von arithmetishen Ausdrüken 2/3 Synthetishe Attribute: E E + T E 1.Code := E 2.Code; T.Code; ADD E E T E 1.Code := E 2.Code; T.Code; SUB E T E.Code := T.Code T T F T 1.Code := T 2.Code; F.Code; MUL T F T.Code := F.Code F (E) F.Code := E.Code F 0 F.Code := LOAD 0. F 9 F.Code := LOAD 9 Prof. Dr. Ursula Goltz Zwishenodeerzeugung 7
10 Beispiel: Übersetzung von arithmetishen Ausdrüken 3/3 Beispiel: E E + T T F T F 2 F 5 9 Prof. Dr. Ursula Goltz Zwishenodeerzeugung 8
11 Beispiel: Übersetzung von arithmetishen Ausdrüken 3/3 Beispiel: E E T + T F LOAD 2 T F LOAD 5 2 LOAD 9 F 9 5 Prof. Dr. Ursula Goltz Zwishenodeerzeugung 8
12 Beispiel: Übersetzung von arithmetishen Ausdrüken 3/3 Beispiel: E + E T LOAD 2 T LOAD 9 T F LOAD 5 F LOAD 2 2 LOAD 9 F 9 5 Prof. Dr. Ursula Goltz Zwishenodeerzeugung 8
13 Beispiel: Übersetzung von arithmetishen Ausdrüken 3/3 Beispiel: E + E T LOAD 2 LOAD 9; LOAD 5; MUL T F LOAD 2 LOAD 9 T F LOAD 5 2 LOAD 9 F 9 5 Prof. Dr. Ursula Goltz Zwishenodeerzeugung 8
14 Beispiel: Übersetzung von arithmetishen Ausdrüken 3/3 Beispiel: LOAD 9; LOAD 5; MUL E E + T LOAD 2 LOAD 9; LOAD 5; MUL T F LOAD 2 LOAD 9 T F LOAD 5 2 LOAD 9 F 9 5 Prof. Dr. Ursula Goltz Zwishenodeerzeugung 8
15 Beispiel: Übersetzung von arithmetishen Ausdrüken 3/3 Beispiel: LOAD 9; LOAD 5; MUL; LOAD 2; ADD E LOAD 9; LOAD 5; MUL E + T LOAD 2 LOAD 9; LOAD 5; MUL T F LOAD 2 LOAD 9 T F LOAD 5 2 LOAD 9 F 9 5 Prof. Dr. Ursula Goltz Zwishenodeerzeugung 8
16 Übersetzung von Kontrollstrukturen Bisher: Nur sequentielle Komposition als Kontrollstruktur des Mashinen-Codes Jetzt: Ausführungsreihenfolge kann durh bedingte und unbedingte Sprünge beeinflusst werden. Hier: Sprungziele werden symbolish angegeben (Sprungmarken) Prof. Dr. Ursula Goltz Zwishenodeerzeugung 9
17 Übersetzung von Kontrollstrukturen - Befehle LABEL l: Sprungmarke GOTO l: Sprung zu l GOFALSE l: Entfernen des obersten Stak-Eintrags, Sprung zu l, falls = 0 GOTRUE l: Entfernen des obersten Stak-Eintrags, Sprung zu l, falls 0 HALT: Stop der Asuführung Prof. Dr. Ursula Goltz Zwishenodeerzeugung 10
18 Syntax Anweisungen stmt if expr then stmt end while expr do stmt end stmt; stmt Prof. Dr. Ursula Goltz Zwishenodeerzeugung 11
19 Übersetzung von Anweisungen Code für if-anweisung Code für expr; GOFALSE out; Code für stmt; LABEL out; Code für while-anweisung LABEL test; Code für expr; GOFALSE out; Code für stmt; GOTO test; LABEL out; Bei jeder if/while-anweisungs-übersetzung müssen neue Marken out, test, et. erzeugt werden! Prof. Dr. Ursula Goltz Zwishenodeerzeugung 12
20 Beispiel Siehe Folien Prof. Dr. Ursula Goltz Zwishenodeerzeugung 13
21 Drei-Adress-Code Mashinenprogramm Befehle: x := yop z op arithm. oder log. binäre Operation x := op y op unäre Operation, z.b. log. Negation, Shiebe-Operation x := y Kopieranweisung goto l unbedingter Sprung if xrelop y goto l bedingter Sprung, relop Vergleihsoperator Befehle zur Daten/Speiher-Behandlung Befehle für Prozedur-Aufrufe Prof. Dr. Ursula Goltz Zwishenodeerzeugung 14
22 Übersetzung von Ausdrüken in Drei-Adress-Code Es werden vom Compiler generierte temporäre Namen eingeführt. z.b. x + y z A 1 := y z A 2 := x + A 1 Gut geeignet für Optimierung, flexibler als Postfix-Notation. Prof. Dr. Ursula Goltz Zwishenodeerzeugung 15
23 Zusammenhang Syntaxbaum und Drei-Adress-Code Einführung expliziter Namen für innere Knoten Beispiel: assign a + b minus b minus A 3 A 1 := A 2 := b A 1 A 3 := A 4 := b A 3 A 5 := A 2 + A 4 a := A 5 Prof. Dr. Ursula Goltz Zwishenodeerzeugung 16
24 Zusammenhang Syntaxbaum und Drei-Adress-Code Einführung expliziter Namen für innere Knoten Beispiel: assign a + b minus A 1 b minus A 3 A 1 := A 2 := b A 1 A 3 := A 4 := b A 3 A 5 := A 2 + A 4 a := A 5 Prof. Dr. Ursula Goltz Zwishenodeerzeugung 16
25 Zusammenhang Syntaxbaum und Drei-Adress-Code Einführung expliziter Namen für innere Knoten Beispiel: assign a + A 2 b minus A 1 b minus A 3 A 1 := A 2 := b A 1 A 3 := A 4 := b A 3 A 5 := A 2 + A 4 a := A 5 Prof. Dr. Ursula Goltz Zwishenodeerzeugung 16
26 Zusammenhang Syntaxbaum und Drei-Adress-Code Einführung expliziter Namen für innere Knoten Beispiel: assign a + A 2 b minus A 1 b minus A 3 A 1 := A 2 := b A 1 A 3 := A 4 := b A 3 A 5 := A 2 + A 4 a := A 5 Prof. Dr. Ursula Goltz Zwishenodeerzeugung 16
27 Zusammenhang Syntaxbaum und Drei-Adress-Code Einführung expliziter Namen für innere Knoten Beispiel: assign a + A 2 A 4 b minus A 1 b minus A 3 A 1 := A 2 := b A 1 A 3 := A 4 := b A 3 A 5 := A 2 + A 4 a := A 5 Prof. Dr. Ursula Goltz Zwishenodeerzeugung 16
28 Zusammenhang Syntaxbaum und Drei-Adress-Code Einführung expliziter Namen für innere Knoten Beispiel: assign a + A 5 A 2 A 4 b minus A 1 b minus A 3 A 1 := A 2 := b A 1 A 3 := A 4 := b A 3 A 5 := A 2 + A 4 a := A 5 Prof. Dr. Ursula Goltz Zwishenodeerzeugung 16
Beispiel 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
Einführung IMP-Syntax Reduktionssemantik Maschinen-Semantik. Teil IV. Semantik imperativer Sprachen
Teil IV Semantik imperativer Sprachen 201 1. Einführung Alternativen zur Beschreibung der Semantik: natürliche Sprache (bisher, unpräzise) operational Reduktionssemantik (vgl. Haskell-Semantik in Kap.
Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab...
0 1 2 0 2 1 1 2 0 2 1 0 Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab... 0 1 2 0 1 2 1 1 3 2 2 3 212 Um solche Tabellen leicht implementieren zu können, stellt Java das switch-statement
Compiler 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
Allgemeine Hinweise:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Midtermklausur Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
3AA. Prof. Dr. Wolfgang P. Kowalk. Universität Oldenburg WS 2005/2006
3AA Prof. Dr. Wolfgang P. Kowalk Universität Oldenburg WS 2005/2006 Version vom 24.10.2005 Übersicht Einführung in maschinennahe Programmierung Verständnis für grundlegende Vorgänge im Computer Jedes Programm
Assembler Kontrollstrukturen
Assembler Kontrollstrukturen Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler Kontrollstrukturen 1/21 2008-04-03 Kontrollstrukturen
Theoretische Informatik II. WS 2007/2008 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch. 1. Teilklausur Vorname:... Nachname:...
Theoretische Informatik II WS 2007/2008 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch 1. Teilklausur 11. 12. 2007 Persönliche Daten bitte gut leserlich ausfüllen! Vorname:... Nachname:... Matrikelnummer:...
Sprungbefehle und Kontroll-Strukturen
Sprungbefehle und Kontroll-Strukturen Statusregister und Flags Sprungbefehle Kontrollstrukturen Das Status-Register 1 Register-Satz des ATmega128 Universal-Register (8Bit) R0..R15 16 Bit Program counter
Kontrollpfad der hypothetischen CPU
Kontrollpfad der hypothetischen CPU fast alle Algorithmen benötigen FOR- oder WHILE-Schleifen und IF.. ELSE Verzweigungen Kontrollfluß ist datenabhängig CCR speichert Statussignale N,Z, V,C der letzten
Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. [email protected]. [email protected].
1 Programmierung 2 Übersetzer: Code-Erzeugung Sebastian Hack [email protected] Klaas Boesche [email protected] Sommersemester 2012 Bytecodes Der Java Übersetzer erzeugt keine Maschinensprache
Kontrollpfad der hypothetischen CPU
Kontrollpfad der hypothetischen CPU fast alle Algorithmen benötigen FOR- oder WHILE-Schleifen und IF.. ELSE Verzweigungen Kontrollfluß ist datenabhängig CCR speichert Statussignale N,Z, V,C der letzten
C- Kurs 04 Anweisungen
C- Kurs 04 Anweisungen Dipl.- Inf. Jörn Hoffmann jhoffmann@[email protected] leipzig.de Universität Leipzig Ins@tut für Informa@k Technische Informa@k Ausdrücke Institut für Informatik Anweisungen C-Programm
2. Imperative Programmierung und Berechenbarkeit - Registermaschinen -
2. Imperative Programmierung und Berechenbarkeit - Registermaschinen - 2.1 Definition 2.2 Loop-Programme 2.3 While Programme 2.4 While Programme und rekursive Funktionen Im Wesentlichen: Tafel! Maschinenmodell
Kode-Erzeugung, Abstrakte Maschinen. Grundlagen der Programmierung 2. Rechnerarchitekturen. Rechnerarchitekturen. Dann Kode-Erzeugung
Kode-Erzeugung, Abstrakte Maschinen Grundlagen der Programmierung 2 Kode-Erzeugung (Compiler 5G) Prof. Dr. Manfred Schmidt-Schauß Kode-Erzeugung: Syntaxbaum Ausgabeprogramm Starte mit Syntaxbaum: Wähle
Stackmaschine; Speicheradressierung
Stackmaschine; Speicheradressierung Erweiterung um globalen Speicher (Heap, Halde) pro Speicherplatz eine Zahl. Notation ist als Array SP [0..]. Zugriff mittels Adresse (Index): eine Zahl i.a.: Zahlen
Praktikum 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
Syntax von LOOP-Programmen
LOOP-Berechenbarkeit Syntax von LOOP-Programmen Definition LOOP-Programme bestehen aus: Variablen: x 0, x 1, x 2, x 3,... Konstanten: 0, 1, 2, 3,... Trennsymbolen:; und := Operationen: + und Befehlen:
Das Prinzip an einem alltäglichen Beispiel
3.2 Pipelining Ziel: Performanzsteigerung é Prinzip der Fließbandverarbeitung é Probleme bei Fließbandverarbeitung BB TI I 3.2/1 Das Prinzip an einem alltäglichen Beispiel é Sie kommen aus dem Urlaub und
Anweisungen in Fortran - Wertzuweisung
Anweisungen in Fortran - Wertzuweisung Wertzuweisung, Ausdrücke variable = ausdruck arithmetischer, logischer oder Zeichenketten-Ausdruck, Typ des Ergebnisses sollte auf den Typ der linksstehenden Variablen
Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register
Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Prog. Counter Memory Adress Register Befehl holen Incrementer Main store Instruction register Op-code Address Memory Buffer Register CU Clock Control
Methoden zur Interpretation LISPähnlicher. Programmiersprachen. Seminarvortrag / 53 FH AACHEN FACHBEREICH 9 TOBIAS STUMM MATR.-NR.
Methoden zur Interpretation LISPähnlicher Programmiersprachen Seminarvortrag 20.01.2017 FACHBEREICH 9 TOBIAS STUMM MATR.-NR. 4012917 1 Inhalt Motivation Lisp > Definition > Scheme Interpreter > Definition
4. Übung SPS-Programmierung
Grundlagen der Automatisierungstechnik (Automatisierungstechnik 1) 4. Übung SPS-Programmierung Programmiersprachen nach IEC 61131-3 2 1 Strukturierter Text (ST) Engl.: Structured Text (ST) Höhere Programmiersprache
Rechnerarchitektur Teil 2
Rechnerarchitektur Teil 2 Fähigkeiten der Registermaschine und Sprachübersetzung Dipl.-Inform. Meiko Lösch 2006-05-12 Inhalt 1 Rechenfähigkeit Zuweisungen Rechnen Relationen 2 Programmierfähigkeit Schleifen
Übung Praktische Informatik II
Übung Praktische Informatik II FSS 2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim [email protected] 20.03.09 4-1 Heutige große Übung Ankündigung
1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.
Themen der Übung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 9.10.01 1 Bedingte Anweisungen Vergleiche und logische Operatoren 3 Fallunterscheidungen 4 Zeichen und Zeichenketten
Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002
1. Stellen Sie die schrittweise Verbesserung eines Compilers durch das Bootstrap- Verfahren mit Hilfe von T-Diagrammen dar. Gegeben ist ein auf der Maschine M lauffähiger Compiler C 1, der in S geschrieben
Übersicht Shell-Scripten
!!!! Wichtig: Bei Shell-Scripten enden die Zeilen nicht mit einem Strichpunkt!!!! Erste Zeile eines Shell-Scripts: #! /bin/bash Variablen in Shell-Scripts: Variablennamen müssen mit einem Buchstaben beginnen,
Assembler-Programmierung
Assembler-Programmierung Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Assembler-Programmierung 1/48 2012-02-29 Assembler-Programmierung
Rechnerstrukturen 1: Der Sehr Einfache Computer
Inhaltsverzeichnis 1: Der Sehr Einfache Computer 1 Komponenten.................................... 1 Arbeitsweise..................................... 1 Instruktionen....................................
Parsing regulärer Ausdrücke. Karin Haenelt
Karin Haenelt 25.4.2009 1 Inhalt kontextfreie Grammatik für reguläre Ausdrücke Grundlagen Parsebaum: konkrete Syntax Syntaxbaum: abstrakte Syntax Algorithmus: rkennung Konstruktion des Syntaxbaumes 2 Grammatik
Compilerbau II Skript
Universität Siegen Fachbereich 12, Angewandte Informatik und Elektrotechnik Dozent: Dr. Kurt Sieber; Compilerbau II Skript Christian Uhrhan 18. März 2011 Inhaltsverzeichnis 1 Syntaxgerichtete Übersetzung
Kode-Erzeugung, Abstrakte Maschinen, Rechnerarchitekturen
Kode-Erzeugung, Abstrakte Maschinen, Rechnerarchitekturen Kode-Erzeugung: Syntaxbaum Ausgabeprogramm Starte mit Syntaxbaum: Darstellung des eingegebenen Programms Wähle Zielarchitektur Wähle abstrakte
Grundlagen der Programmierung
Grundlagen der Programmierung 8. Vorlesung 25.05.2016 1 Ausdrücke "Befehle", die ein Ergebnis liefern 3 + 4 sin(x) x < 10 getchar() Ausdrücke können Teil eines anderen Ausdrucks sein x = sin( x + y ) Auswertung:
Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009
Fachgebiet Rechnerarchitektur Fachbereich Informatik Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Aufgabe 9.1: Dinatos-Algorithmus-Analyse Die folgenden Verilog-Zeilen
Definition Compiler. Bekannte Compiler
Compiler Inhalt: Definition Compiler / bekannte Compiler Klassifikationen von Compilern Analyse-Synthese-Modell der Kompilierung Analyse des Quellprogramms Synthesephase Die Phasen eines Compilers Symboltabellenverwaltung
Boolean Wertemenge: Wahrheitswerte {FALSE,TRUE}, auch {0,1} Deklaration:
Boolean Wertemenge: Wahrheitswerte {,}, auch {,} Deklaration: VAR present,billig,laut,gefunden : BOOLEAN; Ein-/Ausgabe: keine! Operatoren: Negation, Verneinung NOT ~ Konjunktion, logisches UND AND & Disjunktion,
Programmieren 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
Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014
Definition von domänenspezifischen Sprachen mit Xtext: Einführung 19. November 2014 Überblick Was ist zu tun, wenn wir selbst einen Ansatz für modellgetriebenen Entwicklung definieren wollen? Anforderungserfassung
1 Rechnerstrukturen 1: Der Sehr Einfache Computer
David Neugebauer, Informationsverarbeitung - Universität zu Köln, Seminar BIT I Inhaltsverzeichnis 1 Rechnerstrukturen 1: Der Sehr Einfache Computer 1 1.1 Komponenten................................. 1
Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A
2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,
2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 14. Okt. 2015 Computeraufbau: nur ein Überblick Genauer: Modul Digitale Systeme (2. Semester) Jetzt: Grundverständnis
Mächtigkeit von WHILE-Programmen
Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 23 Turingmaschine (TM) M = (Q, Σ, Γ, B, q 0, q, δ) Unendliches Band... 0 c
Programmierung 2. Übersetzer: Das Frontend. Sebastian Hack. Klaas Boesche. Sommersemester
1 Programmierung 2 Übersetzer: Das Frontend Sebastian Hack [email protected] Klaas Boesche [email protected] Sommersemester 2012 Vom Programm zur Maschine Was passiert eigentlich mit unseren
S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"
S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert
Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker
Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker Andreas Keese Institut f. Wissenschaftliches Rechnen TU Braunschweig 8. September 2014 Der Text, die Abbildungen und Programme
Einfache Bedingte Ausführung
Kontrollstrukturen Bisher Programme mit Funktionen als einfache Folge von Befehlen Ablauf von Programmen darüber hinaus steuerbar über Bedingte Ausführung: Ausführung von Programmteilen (Befehlen oder
Definition von domänenspezifischen Sprachen mit Xtext: Einführung
Definition von domänenspezifischen Sprachen mit Xtext: Einführung 28. November 2012 Taentzer Modellgetriebene Softwareentwicklung 246 Überblick Was ist zu tun, wenn wir selbst einen Ansatz für modellgetriebenen
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.
Grundbegriffe der Informatik
Grundbegriffe der Informatik Übung Simon Wacker Karlsruher Institut für Technologie Wintersemester 2015/2016 GBI Grundbegriffe der Informatik Karlsruher Institut für Technologie 1 / 13 Programmiersprachen
Turing-Maschinen: Ein abstrakes Maschinenmodell
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt, eine Elementaroperation ist maschinell ausführbar? Was verstehen
Static-Single-Assignment-Form
Static-Single-Assignment-Form Compilerbau Static-Single-Assignment-Form 195 Static-Single-Assignment-Form besondere Darstellungsform des Programms (Zwischensprache) vereinfacht Datenflussanalyse und damit
Zusammenfassung der Assemblerbefehle des 8051
Zusammenfassung der Assemblerbefehle des 8051 Seite 1 von 5 Befehl Bezeichnung Syntax Wirkung / Beispiel Befehle zum Datentransfer MOV Move MOV [Ziel],[Quelle] MOV P1,P3 Kopiert den Inhalt von P3 nach
Programmieren I. Kapitel 5. Kontrollfluss
Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,
Technische Universität München WS 2004/2005 Fakultät für Informatik 11. Dezember 2004 Prof. Dr. Seidl
Name: Vorname: Matr. Nr.: Technische Universität München WS 2004/2005 Fakultät für Informatik 11. Dezember 2004 Prof. Dr. Seidl Zwischenklausur zu Einführung in die Informatik I Hinweis: In dieser Zwischenklausur
(Prüfungs-)Aufgaben zur Berechenbarkeits- und Komplexitätstheorie
(Prüfungs-)Aufgaben zur Berechenbarkeits- und Komplexitätstheorie 1) Schreiben Sie ein LOOP-Programm, das die Funktion f: N \ {0} N, f (n) = n n berechnet. Sie dürfen in Ihrem Programm die Multiplikation
Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen
Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)
Praktikum Softwareanalyse und -transformation
Praktikum Softwareanalyse und -transformation Thilo Mende Universität Bremen Fachbereich 3 Mathematik und Informatik Arbeitsgruppe Softwaretechnik http://www.informatik.uni-bremen/st Sommersemester 2009
6. Grundlagen der Programmierung
Computeranwendung in der Chemie Informatik für Chemiker(innen) 6. Grundlagen der Programmierung Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL6 Folie 1 Dr. Jens Döbler Grundlagen
3.4 Struktur von Programmen
3.4 Struktur von Programmen Programme sind hierarchisch aus Komponenten aufgebaut. Für jede Komponente geben wir Regeln an, wie sie aus anderen Komponenten zusammengesetzt sein können. program ::= decl*
Allgemeine Erläuterungen zum Ausführen eines Sprachdialoges
Graphische Elemente und deren Bedeutung für VXML Formular (). Menüelement Feldvariable (). Allgemeine Erläuterungen zum Ausführen eines Sprachdialoges Ein VXML-Dialog wird nach dem
Javakurs für Anfänger
Javakurs für Anfänger Einheit 06: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von
Rechnernetze und Organisation
Arithmetic Logic Unit ALU Professor Dr. Johannes Horst Wolkerstorfer Cerjak, 9.2.25 RNO VO4_alu Übersicht Motivation ALU Addition Subtraktion De Morgan Shift Multiplikation Gleitkommazahlen Professor Dr.
UNIX Shell-Programmierung
UNIX Shell-Programmierung Bearbeitet von Rainer Krienke 2. Auflage 2001. Taschenbuch. XII, 275 S. Paperback ISBN 978 3 446 21722 5 Format (B x L): 14 x 21,1 cm Gewicht: 401 g Zu Leseprobe schnell und portofrei
Programmiersprachen und Übersetzer
Programmiersprachen und Übersetzer Sommersemester 2009 5. April 2009 Vorteile bei der Verwendung höherer Programmiersprachen Vorteile bei der Verwendung höherer Programmiersprachen 1. Einfache Notation
9.4 Grundlagen des Compilerbaus
Kap09.fm Seite 717 Dienstag, 7. September 2010 2:06 14 9.4 Grundlagen des Compilerbaus 717 so dass die Benutzung dieser Regeln zum Aufbau eines + -Knotens bzw. eines Negations- Knotens im abstrakten Syntaxbaum
Weitere Arithmetik. Grundlagen der Rechnerarchitektur Assembler 33
Weitere Arithmetik Grundlagen der Rechnerarchitektur Assembler 33 Die speziellen Register lo und hi Erinnerung: ganzzahliges Produkt von zwei n Bit Zahlen benötigt bis zu 2n Bits Eine MIPS Instruktion
Darstellung von Instruktionen. Grundlagen der Rechnerarchitektur Assembler 21
Darstellung von Instruktionen Grundlagen der Rechnerarchitektur Assembler 21 Übersetzung aus Assembler in Maschinensprache Assembler Instruktion add $t0, $s1, $s2 0 17 18 8 0 32 6 Bit Opcode Maschinen
KOP / FBS - Programmierung
KOP / FBS - Programmierung Programmieren in Anweisungsliste Programmieren in strukturierten Text Programmieren in Kontaktplan Programmieren in Funktionsbausteinsprache KOP Programmierung (1) 2 1 Neues
Imperative vs. Funktionale Programmierung
Beispiel: Entwerfe eine Funktion, die testet, ob eine Zahl n eine Primzahl ist oder nicht. Beobachtung: (1) Wenn n Primzahl ist, ist die Menge der Teiler von n leer. (2) Die Menge der Teiler von n sind
COMPILER & CODE ANALYSE. Eine Einführung in die Code Analyse auf Grundlage von Compilern und deren Optimierung. 1
1 COMPILER & CODE ANALYSE Eine Einführung in die Code Analyse auf Grundlage von Compilern und deren Optimierung. 1 INHALT Einleitung Werkzeuge Compiler Aufbau Optimierung Beispiel Code Analyse Einführung
Kontrollstrukturen Blöcke / Schleifen / Bedingungen
Kontrollstrukturen Blöcke / Schleifen / Bedingungen 1 Einfache Anweisungen und Blöcke einfache Anweisung abgeschlossen mit Semikolon ; typische Fälle: o Deklaration, Zuweisung, Funktionsaufruf Sonderfall
3.1 Reservierte Wörter
3.1 Reservierte Wörter int Bezeichner für Basis-Typen; if, else, while Schlüsselwörter aus Programm-Konstrukten; (,), ",, {,},,,; Sonderzeichen. 62 3.2 Was ist ein erlaubter Name? Schritt 1: Angabe der
6. Iteration (Schleifenanweisungen)
6. Iteration (Schleifenanweisungen) Java-Beispiel: TemperatureTable.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 9. Nov. 2015 2 Schwerpunkte While-Anweisung: "abweisende"
Praktische Informatik 3: Funktionale Programmierung Vorlesung 11 vom : Monaden als Berechnungsmuster
16:02:16 2017-01-17 1 [30] Praktische Informatik 3: Funktionale Programmierung Vorlesung 11 vom 10.01.2017: Monaden als Berechnungsmuster Christoph Lüth Universität Bremen Wintersemester 2016/17 Frohes
- - CodE 11 CodE 0 0 0 0 0 0 0 0 2.o C 1 10.0 C 2 off 3 3.0 4 2.0 5 off 6 1 8 20.0 9 60 C 7 4.0 10 80 C 1 38 C 12 8 k 13 on 14 30.0 15 10 16 - - CodE 11 CodE 0 0 0 0 0 0 0 0 2.o C 1 10.0 C 2
Institut für Informatik Prof. Dr. D. Hogrefe Dipl.-Inf. R. Soltwisch, Dipl.-Inform. M. Ebner, Prof. Dr. D. Hogrefe Informatik II - SS 04.
Kontrollstrukturen Informatik II SS 2004 Teil 4: Assembler Programmierung Sprünge (bedingte und unbedingte) If-then-else, Case Loop (n Durchläufe) While (Abbruchbedingung) Institut für Informatik Prof.
4.4 Imperative Algorithmen Verzweigung und Iteration
Eine weitere bedingte Schleife kann in Java mit dem Schlüsselwort for definiert werden: for (; i ; ) Alle drei Bestandteile im Schleifenkopf sind Ausdrücke
Übersicht Programmablaufsteuerung
Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen
