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