Fachgebiet Software Engineering Übersicht © 23.01.2014 Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.

Slides:



Advertisements
Ähnliche Präsentationen
Kapitel 4 Syntaktische Analyse: LR Parsing.
Advertisements

24. April 2009 Cosmology/Supersymmetry, SS 09, Prof. W. de Boer/Prof.. Kazakov 1 Introduction Outline: 1.Basics of SM 2.Need for Supersymmetry beyond SM.
Parsing Prolog Aufbaukurs SS 2000 Heinrich-Heine-Universität Düsseldorf Christof Rumpf.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS 07 Prof. Albert Zündorf
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS 09 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339 im Altbau)
3. Analyse Gliederung: Einführung Anforderungsdefinition
Seminar Web-Engineering Nina Aschenbrenner / Ruben Jubeh 1 FG Software Engineering Software Engineering Seminar Web Engineering Seminar des Fachgebiet.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 GUI Konstruktion: 1. Entwurf mit Papier und Bleistift / Post Ist 2. Eventuell.
4. Design Gliederung: Einführung Anforderungsdefinition Analyse Design
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Software Engineering I m Vorlesung im Wintersemester 2008/09 m.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Projektplan: m : Anforderungsanalyse Dokument m :
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Objektorientierte Vererbung
Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1 4. Design Gliederung: 1. Einführung 2. Anforderungsdefinition 3. Analyse 4. Design.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Software Engineering I m Vorlesung im Wintersemester 2007/08 m.
1 Reverse Engineering WS 07 / 08 A. Zündorf. Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University 2 Organisatorisches.
Reverse Engineering 1 Reverse Engineering WS 04 / 05 A. Zündorf.
Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1 4. Design Gliederung: 1. Einführung 2. Anforderungsdefinition 3. Analyse 4. Design.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 Model View Controller Pattern.
Wasserfallmodel Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Teamorganisation: Versionsverwaltung
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. Funktionsorientierte Organisation.
Software Engineering I
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Software Engineering I m Vorlesung im Wintersemester 2010/11 m.
Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
Programmiermethodik SS 10 Prof. Albert Zündorf
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 1 Gesamtvorgehen 1. Textuelle Szenarios 2. Objektdiagramme 3. Klassendiagramm 4.
Seminar SE: MDE 1 FG Software Engineering Software Engineering Seminar Model Driven Engineering Seminar des Fachgebiet Software Engineering Ruben Jubeh,
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. funktionsorientierte Organisation.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. Funktionsorientierte Organisation.
LL(1) Grammatiken Simple LL(1) ohne ε-Regeln verschiedene Produktionen, so gilt LL(1) ohne ε-Regeln verschiedene Produktionen, so gilt LL(1) mit ε-Regeln.
Zeitplanerstellung ACHTUNG:
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Client Architecture Data Model GUI KI Socket Connection.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
Kapitel 4: Die Schule Deutsch 1
OOD – Object Oriented Design II
Automated Software Testing
The free XML Editor for Windows COOKTOP Semistrukturierte Daten 1 Vortrag Semistrukturierte Daten 1 COOKTOP The free XML-Editor for Windows
Deutsch 1 G Stunde. Donnerstag, der 25. Oktober 2012 Deutsch 1, G Stunde Heute ist ein B- Tag Unit: Family & homeFamilie & Zuhause Objectives: Phrases.
Deutsch 1 G Stunde. Donnerstag, der 18. Oktober 2012 Deutsch 1, G Stunde Heute ist ein E- Tag Unit: Family & homeFamilie & Zuhause Objectives: Phrases.
Deutsch 1 G Stunde. Unit: Introduction to German & Germany Objectives: Learn phrases about date, weather and time-telling Presentations about the federal.
Deutsch 1 G Stunde. Montag, der 22. Oktober 2012 Deutsch 1, G Stunde Heute ist ein F- Tag Unit: Family & homeFamilie & Zuhause Objectives: Conjugations.
Deutsch 1 G Stunde. Dienstag, der 16. Oktober 2012 Deutsch 1, G Stunde Heute ist ein B- Tag Unit: Family & homeFamilie & Zuhause Objectives: Getting to.
You need to use your mouse to see this presentation © Heidi Behrens.
XML IV: Cocoon 2.
Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.
Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.
Computerorientierte Physik VORLESUNG
External Labels – The rules For all external labels the following rules apply (external labels are all labels which are not inside of a shape) - all labels.
Launch ON Global.vi System ID object name classname Services to suscribe Observer Control Ref vi-path Service name Step 1 : Objects register to the Global.vi´s,
Der Prozessor Von Stephan Blum.
Vom HW-Automaten zum Prozessor
מבוא למערכות מחשב ואסמבלי
Test Summary: ein Fehler pro Tag Test First
 Präsentation transkript:

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester 2010/11 m Prof. Albert Zündorf m Betreuer: Johannes Spohr, et. al. m Fachgebiet für Software Engineering

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Organisatorisches Umfang: 4 SWS teils Vorlesungen teils Übungen Übungsbetreuung: Johannes Spohr Ort und Zeit: Freitag 10: :45 Raum 1340 Beginn: Freitag, den Prüfung: Projektarbeit / Hausaufgaben jeder einzeln wird nur einmal im Jahr angeboten Folienskript, Unterlagen, Aufgabenstellungen: meist einen Tag in voraus.

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Inhalte und Lernziele: m Lesen und Verarbeiten strukturierter Texte m Daten m Programme m Rekursiverabstiegscompiler m Compilercompiler m Codegenerierung m Codecompletion m Codeanalyse m Refactorings m …

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Literatur m m Compilerbau, 2 Tle., Tl.1 von Alfred V. Aho, Ravi Sethi, und Jeffrey D. Ullman von Oldenbourg (Taschenbuch - Dezember 1999)Preis:EUR 34,80 Compilerbau, 2 Tle., Tl.1

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University

Homework #1 m Write unit tests for l parsing single digits l addition of those digits and computing the correct result l interpreting subtraction, multiplication, and division l Punkt vor Strich l parsing parentheses m Implement the parser/interpreter. m A GUI for the interpreter only if you like. m Zip jour eclipse project m Send via to: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University

Scanning

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University

Code Generation m Registermaschinen m Maschinencode / Assembler m Stackmaschinen m BCEL

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Registermaschinen ALU OPCode Decoder AdderMultiplier LogicOpsStoreOps JumpOps PC ACU FP R1..8 Memory Address Decoder

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University OPCode Decoder Adder Addierbefehl & =0 &

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Maschinencode Registermaschine m Arithmetisch, Logisch, Speicher, Sprung, … m OpCode plus 1 oder 2 Operanden m Rechenbefehle nur auf Registern m Speicherbefehle: Memory Register

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Stackmaschinen ALU OPCode Decoder AdderMultiplier LogicOpsStoreOps JumpOps PC ACU FP R1..8 Memory Address Decoder Stack

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Maschinencode Stackmaschine m Arithmetisch, Logisch, Speicher, Sprung, … m OpCode plus 1 oder 2 Operanden m Rechenbefehle auf Stack m Speicherbefehle: Memory Stack m load 0, load 8, add, store 12

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Java Byte Code für eine Klasse

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University BCELifier m Beispiel in Java schreiben m Compilieren m mit BCELifier "Creator" Klasse generien m anschauen

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University if

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University

while

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University funcDecl

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Scopes

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Procedure Call Stack

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University

Tabellengesteuertes Parsen Beispielgrammatik: E ::= T ['+' T]*E ::= T E' E' ::= + T E' | T ::= F ['*' F]*T ::= F T' T' ::= * F T' | F ::= n | '(' E ')'

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Wortableitung Beispielgrammatik: E ::= T ['+' T]*E ::= T E' E' ::= + T E' | T ::= F ['*' F]*T ::= F T' T' ::= * F T' | F ::= n | '(' E ')'

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Parsertabelle +*()n$ EE::=TE' E'E'::=+TE' E'::= TT::=FT' T' T'::= T'::=*FT' T'::= FF::=(E)F::=n

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Algorithmus while Stack nicht leer if top == currentToken pop nextToken() else rule := M[top, currentToken] pop push (lhs(rule)) print rule

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Ablauf: StackEingabeAusgabe En + n * n $

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Ablauf: StackEingabeAusgabe

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Konstruktion: First und Follow First ( ) Menge aller Terminale mit denen beginnen kann First (a) {a} X ::= First ( X ) += X ::= A B C D First ( X ) += First ( A ) if ( First (A) ) First ( X ) += First (B) …

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Konstruktion: First und Follow E ::= T E'First (E) = {} E' ::= + T E' | First (E') = {} T ::= F T'First (T) = {} T' ::= * F T' | First (T') = {} F ::= n | '(' E ')'First (F) = {}

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Konstruktion: First und Follow Follow (X)alle Terminale die auf X folgen können SFollow (S) += $ A ::= B Follow (B) += First ( ) - if ( First ( ) ) Follow (B) += Follow (A) A ::= BFollow (B) += Follow (A)

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Konstruktion: First und Follow E ::= T E' Follow (E) = {} E' ::= + T E' | Follow (E') = {} T ::= F T' Follow (T) = {} T' ::= * F T' | Follow (T') = {} F ::= n | '(' E ')' Follow (F) = {}

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Tabellenkonstruktion for_all A ::= for_all a First ( ) M[A,a] += A ::= if First ( ) for_all b Follow (A) M[A,b] += A ::= if $ Follow (A) M[A,$] += A ::=

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Tabellenkonstruktion E ::= T E' E' ::= + T E' | T ::= F T' T' ::= * F T' | F ::= n | '(' E ')' +*()n$ E E' T T' F

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compiler Compiler: Antlr V3

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Model Driven XXX

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University

Reverse Engineering

Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University