Nächste Seite: Übung Scanner-Generator flex (21.
Aufwärts: Compilerbau Vorlesung, Wintersemester 2003
Vorherige Seite: Lexikalische Analyse (10. 11.)
Determinieren, Minimieren
Id: detmin.tex,v 1.1 2003/11/12 09:56:19 joe Exp
Determine-D-Quiz
:
- gegeben: (nichtdeterministischer) Automat
- gesucht: deterministischer Automat mit
.
Equiv-E-Quiz
:
- gegeben: deterministischer Automat
- gesucht:
ein Liste
,
wobei die Liste aller Tripel
ist,
für die
, aber
.
Die letzte Unter-Liste soll leer ( = [] ) sein.
Reguläre Ausdrücke in egrep
Id: egrep.tex,v 1.2 2003/11/12 15:22:16 joe Exp
Siehe man egrep
, man regexp
.
Beispiel: egrep '^[^ ]*$' foo.text
Aufgaben:
- Wie werden die aus der Vorlesung (bzw. autotool)
bekannten Konstruktoren für reguläre Ausdrück hingeschrieben?
- Was bedeuten
- finden Sie in einem File alle Zeilen,
die wenigstens einen Kleinbuchstaben enthalten.
- enthält die manpage von egrep eine Zeile,
die mit einem Kleinbuchstaben beginnt?
(
man egrep | egrep '...'
)
- Matchen Sie alle Zeilen,
die insgesamt wenigstens 3 Ziffern enthalten.
Reguäre Ausdrücke in sed
Id: sed.tex,v 1.1 2003/11/12 09:56:19 joe Exp
(sed = stream editor)
Aufgaben:
- Suchen und ersetzen, Beispiel:
echo foo | sed -e 's/o/O/g'
Was bewirkt das abschließende g
?
- Schreiben Sie einen sed-Aufruf,
der alle Zeilen-Kommentare (ab
//
) löscht.
Hinweis: benutzen Sie nicht /
,
sondern z. b. +
als sed-Trennzeichen.
- Bezugnahme auf frühere Matches. Was bedeutet das?
sed -e 's/\([a-z]*\)/\1\1/g'
Reguläre Ausdrücke in der Bash
Id: bash.tex,v 1.2 2003/11/12 15:22:16 joe Exp
(bash = ``bourne again'' sh)
Bei Filenamen: ls foo/*x*/*.{tex,ps}
PS: Ansonsten nützlich:
- Zeilen-Editor (probieren Sie Cursor-rechts, Cursor-links,
C-f, C-b, C-a, C-e, C-w, C-k C-y)
- Command-History (Cursor-hoch, Cursor-runter, C-p, C-n)
- inkrementelle Suche in Command-History (C-r und dann Suchstring)
- Prompt-Symbol (diese Zeile in .bashrc eintragen:)
export PS1="\u@\h:\w\$ "
Reguläre Ausdrücke in Emacs
Id: emacs.tex,v 1.1 2003/11/12 09:56:19 joe Exp
M-x query-replace-regexp
(Syntax wie in sed)
PS: Sonstiger Spaß mit Emacs:
C-x r k
(kill rectangle), C-x r y
(yank rectangle)
M-x hanoi
M-x gomoku
(5 in einer Reihe)
M-x dunnet
(Abenteuer! - Nicht trivial!)
Nächste Seite: Übung Scanner-Generator flex (21.
Aufwärts: Compilerbau Vorlesung, Wintersemester 2003
Vorherige Seite: Lexikalische Analyse (10. 11.)
Johannes Waldmann
2004-01-28