Ludwig-Maximilians-Universität München, Institut für Informatik,
Lehr- und Forschungseinheit für Programmierung und Softwaretechnik
Einführung in die Informatik IV (SS 98)
Aktuelles
Zum Erwerb des Scheines muß die Klausur bestanden werden. Wer
mindestens (17 + Malus) von 40 Punkten erreicht,
erhält einen Schein.
Die Klausur findet am 24. Juli, 16.00-18.00 Uhr im Hörsaal 122
(Theresienstraße 39) statt.
Nach Prüfungsbeginn ist kein Einlaß mehr möglich. Bei
der Klausur bitte mitbringen: Studentenausweis, Lichtbildausweis,
Schreibzeug, Schmierpapier DIN A4, frankierten und mit Ihrer Anschrift
adressierten Briefumschlag für Schein (Scheinformulare sind nicht
beizulegen).
Persönliche Unterlagen wie: Bücher, Skripten usw. sind
erlaubt, aber keine Elektrogeräte!
KLAUSURERGEBNISSE
Übungsblätter:
flex:
flex ist eine Weiterentwicklung des Scannersgenerators lex. flex
liest eine flex-Datei flexfile ein und generiert
eine C-Datei lex.yy.c. Die flex-Datei setzt sich aus drei
Abschnitten zusammen, die voneinander durch eine aus zwei
Prozentzeichen bestehende Zeile getrennt werden:
definitions
%%
rules
%%
user code
Der definitions-Abschnitt enthält Namensdeklarationen,
die die Spezifikation des Scanners vereinfachen sollen, sowie
Anfangsdeklarationen. Namensdeklarationen sind von der Form
name definition
Spätere Referenzen der Form {name} expandieren zu
(definition). Zum Beispiel:
DIGIT [0-9]
ID [a-z][a-z0-9]*
Eine nachfolgende Referenz zu
{DIGIT}+"."{DIGIT}*
ist dann identisch mit
([0-9])+"."([0-9])*
und entspricht einer Folge aus einer oder mehreren Ziffern, gefolgt
von einem Punkt, gefolgt von einer beliebigen Folge aus Ziffern.
Der rules-Abschnitt enthält eine Folge von Regeln der
Form
pattern action
wobei pattern am Anfang der Zeile stehen muß und
action in derselben Zeile anfangen muß. Die
action enthält C-code, der ausgeführt wird, falls
das eingelesene Wort (lexeme), das in der Variablen
yytext gespeichert ist, zu dem begleitenden pattern
gehört. Falls mehr als ein pattern in Frage kommen,
wird die erste (von oben nach unten) zu diesen pattern
assoziierte action ausgeführt. Falls das eingelesene
Wort zu keinem pattern gehört, wird das Wort (als
"default" action) zurückgegeben. Bei den
pattern kann man nicht nur vorher definierte namen,
sondern auch die C-Abkürzungen verwenden,
so z.B. entspricht "\n" dem newline-Zeichen,
"\t" dem tab-Zeichen, usw.
Zum pattern "." (Punkt) gehört jedes Zeichen.
Schließlich wird der Benutzercode aus dem
user-code-Abschnitt wörtlich übernommen. Dabei
darf eine Funktion int yywrap() vorkommen, die beim Erreichen
des Zeichenstromendes aufgerufen wird.
Zur Übersetzung einer flex-Datei flexfile geht
man wie folgt vor:
hermes:~/flex> flex flexfile
hermes:~/flex> cc lex.yy.c -ll
(Auf linux-Rechnern heißt die Bibliothek fl, d.h. die
letzte Kommandozeile wäre dann cc lex.yy.c -lfl.
Allerdings wird die Funktion int yywrap() nicht mitgeliefert,
man muß sie also selber schreiben).
Um dann eine Datei testfile zu scannen, geht man wie
folgt vor:
hermes:~/flex> a.out < testfile
Alternativ kann man direkt den zu scannenden Zeichenstrom eingeben:
hermes:~/flex> a.out
inputstring
ctrl-D
Beispiele:
Literatur:
yacc:
(Siehe Einführung auf Übungsblatt 11 sowie Literaturhinweise oben
und auch die ursprüngliche Dokumentation.)
Inhalt
- Hörerkreis: Studierende im Grundstudium der Informatik
- Voraussetzungen: keine
- Literaturhinweise
- Skript: keines
zurück zum Inhaltsverzeichnis dieser Seite
Personen
Die Vorlesung wird gehalten von:
Prof. Dr. Fred Kröger
| Adresse:
| Raum 054, Oettingenstraße 67 |
| Telephon:
| 2178-2150 |
| E-mail Adresse:
| kroeger@informatik.uni-muenchen.de |
| Sprechstunde:
| Donnerstag, Raum 054, 14-15 Uhr |
| und nach Vereinbarung
|
Verantwortlich für die Durchführung der Übung sind:
Dr. María Victoria Cengarle
Dr. Piotr Kosiuczenko
Andreas Abel
zurück zum Inhaltsverzeichnis dieser Seite
Termine
Vorlesung (4-stündig):
- Zeit: Mo und Do 11-13 Uhr
- Ort: Hörsaal 138, Theresienstraße 39
- Beginn: 4.5.1998
Übung (2-stündig in Gruppen):
- Zeit: Di 13-15 Uhr
- Ort: Raum 251, Theresienstraße 39
- Beginn: 19.5.1998
- Zeit: Mi 14-16 Uhr
- Ort: Raum E46, Theresienstraße 39
- Beginn: 20.5.1998
Klausur:
Die Klausur findet statt am 24. Juli, von 16.00-18.00
Uhr im Hörsaal 122 (Theresienstraße 39) statt (sehe oben).
zurück zum Inhaltsverzeichnis dieser Seite
Bei
Problemen oder Vorschlägen schicken Sie bitte eine eMail an wwwmaster@pst.informatik.uni-muenchen.de
María Victoria Cengarle (29.4.1998)