Suche Home Einstellungen Anmelden Hilfe  

 
UNI Didaktik der 
Informatik
DdI
 Projekttage zum Erwerb eines Scheins zur
Vorlesung Algorithmen, Daten und Programme II, SS 98

Programmierung elementarer Algorithmen

Aufgabe 2
"Sprachprobleme"

Zwischen den Siedlungen auf unserem Planeten Erde2 liegen große Entfernungen und vierzig Jahre lang herrscht nur geringer Kontakt, so dass sich die Sprache in den Siedlungen unterschiedlich entwickelt. Während die Grammatik unverändert erhalten blieb, haben sich teilweise unterschiedliche Begriffe und Zeichen für identische Sachverhalte gebildet. Für diplomatische Gespräche sollen daher schnelle und flexible Sprachübersetzer geschaffen werden.

a) (Vorübung) Schreiben Sie ein Programm in ML, welches Eingabezeichenketten von der Sprache1 in die Sprache2 übersetzt. Verwenden Sie das Modell eines endlichen Automaten.
Sprache 1 Sprache 2
aa b
ba a
ab f
bc a
d
b ende
 
Das Wort "bcaadb" kann z. B. nach "abende" übersetzt werden.
"aacb" könnte ein Fall sein, der nicht übersetzt werden kann.
Hinweis:
Es können gegebenenfalls Fälle auftreten, die nicht eindeutig sind, so dass zusätzliche Bedingungen für die Übersetzung festgelegt werden müssen.
 
b) Schreiben Sie ein Programm P in ML, welches bei Eingabe von zwei Sprachbeschreibungen A und B ein Programm P' (oder ein Datenmodul für P') erzeugt, das Zeichenketten von der Sprache A in die Sprache B übersetzt. Die Sprachbeschreibung erfolgt in einer Folge von Wortpaaren (<alt>,<neu>), die jeweils Begriffe aus den Sprachen mit identischer Bedeutung zuordnen. Die Zeichenfolge besteht aus mehreren Wörtern, die gegebenenfalls durch ein sprachabhängiges Zeichen getrennt sind, d. h. eines der Wortpaare bildet das Trennsymbol der einen Sprache auf das Trennsymbol der anderen Sprache ab (es ist jedoch nicht bekannt welches!).
 
Syntax der Spracheingabe:
<Sprache> ::= <Folge> (,)
<Folge>  ::= <Ersetzung> | <Folge> <Ersetzung>
<Ersetzung> ::= (<alt>,<neu>)
<alt> ::= <Zeichenkette>
<neu> ::= <Zeichenkette> | eps
<Zeichenkette> ::= <Zeichen> | <Zeichenkette> <Zeichen>
<Zeichen> ::= <irgendein ASCII-Zeichen, ausser (,) >

c) optionale Aufgabe: Minimierung des Datenmoduls für P' (d. h. Minimierung des endlichen Automaten)

Stichworte:
Pattern Matching, regulärer Ausdruck, kontextfreie Grammatik, deterministischer endlicher Automat, Top-Down, Bottom-Up, Syntaxanalyse, Parser, nichtdeterministischer Automat
 
Literatur: Sedgewick S. 342-370 (Kapitel 20, 21), zu Aufg. (c): Hopcroft-Ullman S. 72-75 

Ergebnisse der Projektgruppe  

Benutzer: Gast • Besitzer: mthomas • Zuletzt geändert am: