Nächste Seite: Abstrakte Maschinen
Aufwärts: Compilerbau Vorlesung, Wintersemester 2003
Vorherige Seite: Compilerbau Vorlesung, Wintersemester 2003
Was ist ein Compiler?
Id: intro.tex,v 1.1 2003/10/13 15:46:31 joe Exp
- Informatik, Algorithmen
- für (abstrakte) Maschinen
- formuliert in Programmiersprache
- verschiedene Sprachen, brauchen Übersetzer
- Interpreter: sofort ausführen
- Compiler: erst übersetzen, dann ausführen
Beispiele: Interpreter: Shells (bash), Script-Sprachen (Perl), hugs
Beispiele: Compiler: gcc, javac, latex, dvips, ghc
Compiler zum Textsatz
Id: beispiele.tex,v 1.1 2003/10/13 15:46:31 joe Exp
Zielsprache: Seitenbeschreibungssprache, z. B. PostScript
42 42 scale 7 9 translate .07 setlinewidth .5 setgray/c{arc clip fill
setgray}def 1 0 0 42 1 0 c 0 1 1{0 3 3 90 270 arc 0 0 6 0 -3 3 90 270
arcn 270 90 c -2 2 4{-6 moveto 0 12 rlineto}for -5 2 5{-3 exch moveto
9 0 rlineto}for stroke 0 0 3 1 1 0 c 180 rotate initclip}for showpage
Eingabe: compilerbau.tex
$ latex compilerbau.tex
erzeugt compilerbau.dvi
$ xdvi compilerbau.dvi
$ dvips compilerbau.dvi
erzeugt compilerbau.ps
$ gv compilerbau.ps
$ latex2html compilerbau
Empfohlene Literatur/Links
Id: literatur.tex,v 1.1 2003/10/13 15:46:31 joe Exp
Organisation
Id: org.tex,v 1.1 2003/10/13 15:46:31 joe Exp
- Vorlesung
- ungerade, mittwochs, 13:45, Li318
- gerade, montags, 15:30, G327
- Seminare:
Einschreibung über ein Web-Interface, wird noch bekanntgegeben,
- für
- ungerade, freitags, 11:15, Z530
- und gerade, freitags, 17:15, Z530
- oder
- ungerade, freitags, 19:00, Z530
- und gerade, mittwochs, 11:15, Z530
- aller 2 Wochen kleinere Aufgaben (Web-Interface)
- Prüfungs-Klausur
Leistungsnachweise
Id: leistung.tex,v 1.1 2003/10/13 15:46:31 joe Exp
Arbeitsweise eines Übersetzers
Id: schritte.tex,v 1.1 2003/10/13 15:46:31 joe Exp
- Eingabe: Quelltext (ist Folge von Zeichen)
- lexikalische Analyse (erzeugt Folge von Tokens)
- syntaktische Analyse (erzeugt Syntaxbaum)
- semantische Analyse (dekoriert Syntaxbaum)
- (bei Interpreter: Code-Ausführung)
- (bei Compiler:)
- Optimierung (verändert Syntaxbaum)
- Code-Ausgabe (erzeugt Zielprogramm-Text)
Vorteile eines Compilers
Id: vorteile.tex,v 1.2 2003/11/06 13:59:41 joe Exp
- trennt Übersetzung und Ausführung
- möglichst großen Teil der Analyse-Arbeit
bereits zur Übersetzungszeit ausführen,
zur Laufzeit weglassen.
- Übersetzung und Ausführung auf getrennten Maschinen
(spart Ressourcen)
- Cross-Compilation ermöglicht Portierungen
strenges Typsystem
viele Tests zur Compile-Zeit, keine zur Laufzeit
schnelle Programme!
Nächste Seite: Abstrakte Maschinen
Aufwärts: Compilerbau Vorlesung, Wintersemester 2003
Vorherige Seite: Compilerbau Vorlesung, Wintersemester 2003
Johannes Waldmann
2004-01-28