szakdoli:uresszo
Összehasonlítás
A kiválasztott és az jelenlegi változat között az alábbi különbségek fordulnak elő:
| Előző változat mindkét oldalonElőző változatKövetkező változat | Előző változat | ||
| szakdoli:uresszo [2015/09/04 19:54] – [Üres szó lemma eltávolítása] peter | szakdoli:uresszo [2015/12/04 13:51] (aktuális) – [A szabály alkalmazása] peter | ||
|---|---|---|---|
| Sor 1: | Sor 1: | ||
| [[szakdoli: | [[szakdoli: | ||
| ====== Üres szó lemma (λ szabályok eltávolítása) ====== | ====== Üres szó lemma (λ szabályok eltávolítása) ====== | ||
| - | Ha egy adott nyelvben szerepel egy olyan szabály, amely üres szó-t (λ) tartalmaz, akkor a nyelvi szabály rendszert át lehet alakítani úgy, hogy olyan szabályt kapjunk amely nem tartalmaz üres szót és ekvivalens az eredeti szabállyal. A következőben ismertetek egy algoritmust, | + | ===== A szabály alkalmazása ===== |
| - | - Első lépésben azonosítjuk azokat a szabályokat, | + | A " |
| - | - Az üres szót nem tartalmazó szabályok képezik az új szabály halmaz alapját.\\ | + | ===== A szabály folyamata ===== |
| - | - Az azonosított szabályokból azokat amelyek A->λ formátumúak a rendelkezésre álló szabályokban behelyettesítjük mint üres karaktert (azaz töröljük a nemterminális elemet). Pl. A->λ; S->Aa esetén: S->a szabály | + | Ha egy adott nyelvben szerepel egy olyan szabály, amely üres szó-t (λ) tartalmaz, akkor a nyelvi szabály rendszert át lehet alakítani úgy, hogy olyan szabályt kapjunk amely nem tartalmaz üres szót és ekvivalens az eredeti szabállyal. A következőben ismertetek egy algoritmust, |
| - | - Ha egy szabályban több azonos nemterminális is szerepel, akkor külön-külön | + | 1. Első lépésben azonosítjuk azokat a szabályokat, |
| - | - Ha több nemterminálisnak is van λ szabálya, akkor külön-külön elvégezzük a helyettesítést és utána egymás kombinációjában is végrehajtjuk ugyanezt. Pl.: A->λ; B->λ; S->AaB; esetén: S->aB; S->Aa; S->a képződik.\\ | + | B → λ |
| - | - Ha a szabályok feldolgozása közben az S->λ szabály előkerül valahol, akkor a kész szabályrendszerhez hozzá kell adni ezt a szabályt, mivel a nyelv által generált szavak között az üres szó-t is létre kell hozni, tehát szükség van erre a szabályra!\\ | + | 2. Az üres szót nem tartalmazó szabályok képezik az új szabály halmaz alapját. Pl.: |
| - | - Az összes üres szó szabály feldolgozása után ha az eredményhalmazban az átalakítást követően megint keletkezik üres szó szabály, akkor a folyamatot | + | S → Ba |
| + | ezeket a szabályokat kell kibővíteni az új szabályokkal.\\ \\ | ||
| + | 3. Az azonosított szabályokból azokat amelyek A->λ formátumúak a rendelkezésre álló szabályokban behelyettesítjük mint üres karaktert (azaz töröljük a nemterminális elemet) | ||
| + | | ||
| + | S → a < | ||
| + | szabályhalmazt képződik eredményül.\\ \\ | ||
| + | 4. Ha egy szabályban több azonos nemterminális | ||
| + | | ||
| + | | ||
| + | szabályhalmaz | ||
| + | | ||
| + | | ||
| + | | ||
| + | szabályhalmaz | ||
| + | 5. Ha több nemterminálisnak is van λ szabálya, akkor az előző példához hasonlóan | ||
| + | | ||
| + | | ||
| + | | ||
| + | szabályhalmaz | ||
| + | | ||
| + | | ||
| + | | ||
| + | szabályhalmaz | ||
| + | 6. Ha a szabályok feldolgozása közben az S->λ szabály előkerül valahol, akkor a kész szabályrendszerhez hozzá kell adni ezt a szabályt, mivel a nyelv által generált szavak között az üres szó-t is létre kell hozni, tehát szükség van erre a szabályra!\\ \\ | ||
| + | 7. Az összes üres szó szabály feldolgozása után ha az eredményhalmazban az átalakítást követően megint keletkezik üres szó szabály, akkor az algoritmust | ||
| + | S → Aa | ||
| + | A → B | aB | ||
| + | B → λ | ||
| + | szabályhalmaz feldolgozása (' | ||
| + | S → Aa | ||
| + | A → λ | a | ||
| + | A keletkező szabályhalmazban megint van olyan szabály, amely λ tartalommal bír ezért az algoritmust újból lefuttatjuk a keletkezett szabály halmazon: | ||
| + | S → a | ||
| + | A → a | ||
szakdoli/uresszo.1441396446.txt.gz · legutóbbi módosítás: (külső szerkesztés)
