Formális nyelvek gyakorlat (8)
2005. november 10., csütörtök
- Adjunk véges fordítót, amely az alábbi dolgokat
teszi: bemenetként
feletti szavakat vesz, és
átírja őket
feletti szavakká úgy, hogy az
-t
-re, a
-t meg
-re
cseréli.
- Készítsünk véges fordítót az alábbi specifikáció
alapján: legyen
. Ha az utoljára olvasott
karakter megegyezik az azelőttivel, akkor írjon
-et, ha
különböznek, akkor írjon
-t. Az első karakter beolvasása után ne
írjon semmit, így egy hosszú szöveg fordítása -1 hosszú lesz.
- A 2. feladatban szereplő
fordítóval lefordítjuk azt a nyelvet, mely azon szavakból áll, ahol a
szavakban a karakterek száma páratlan. Mi lesz a fordított nyelv automatája?
- A fordító ugyanaz, mint a 2.
feladatban. A fordítandó nyelv: a szavak
-val kezdődnek,
-re végződnek, és a páros hosszú
sorozatok száma
páratlan. Készíts a fordított nyelvre automatát!
- Készítsünk szigorúan jellemző nyelvtant az
1. feladatban leírt fordításhoz!
- Bizonyítsuk be, hogy ha egy fordításhoz van
jellemző nyelvtan, akkor van hozzá szigorúan jellemző nyelvtan is!
- Készítsünk olyan véges fordítót, mely minden
szó esetén annyi
-et ír ki,
ahányszor a szóban előfordul az
részszó! (Ha pl.
, akkor
lesz az eredmény, mert
kétszer, a második és az ötödik pozíciótól kezdve szerepel az
abaaba a szóban.)
- Készítsünk olyan fordító automatát, mely minden
szó esetén annyi nullát ír ki, ahány
olyan kezdőszelete van -nek, hogy -ben az
-k és a
-k száma azonos.
- Adott az alábbi fordító automata:
Készíts automatát az
nyelvtan
által generált nyelv fordításának felismerésére!
- Tekintsük az alábbi szintaxis vezérelt fordítási
sémákat (
):
-
-
Mi a fordított nyelv?
- Készíts olyan szintaxis vezérelt fordítási sémát, amely a száznál kisebb
arab számokat római számokká írja át. Add meg a fordítás egy jellemző
nyelvtanát is!