Ez a dokumentum egy előző változata!
Tartalomjegyzék
Szakdolgozat: Véges automaták és reguláris nyelvek kapcsolata
Reguláris nyelv modul felépítése, kezelése
Terminális és nem terminális elemek kijelölése
A feladat kiírásakor peremfeltételként volt meghatározva, hogy először legyenek kijelölve a terminális (továbbiakban: T) és nem terminális (továbbiakban: NT) elemek, majd csak utána lehessen szabályokat alkotni. Ezért a felső részben megjelenítem a lehetséges T és NT elemeket. Ezzel korlátozva a szabályok létrehozásának lehetőségét. A T és NT sorokban található gombokra kattintva tudjuk kijelölni azt az elemet, amelyet használni szeretnénk a szabály felépítésekor. Az 'S' jelű NT elem automatikusan ki van jelölve, mivel Ő a kezdő elem. És bár a kezdő elem egyéb esetben tetszőlegesen választható az NT elemek közül, ebben a feladatban ezt fixáltuk és mindig kijelölt elemként jelenik meg! (törlése nem lehetséges)
Az ABC betűinek használatát kínálom fel a választáskor. A T elemek a kisbetűket, a NT elemek a nagybetűket tartalmazzák. 'A'-tól 'Z' karakterig listázom az angol ABC szerint a betűket. A karakterekből eltávolítottam az 'I', 'L' és 'O' karaktereket, mivel megtévesztőek lehetnek és a T és NT összekeverhetővé válhat egyes fontkészletek esetében. Ezzel a megszorítással 23 lehetőséget kínálok fel választásra az egyes csoportokban.
Szabály szerkesztése
A szabály szerkesztésében bevezettem bizonyos korlátozásokat:
- Csak a korábban kijelölt N és NT elemeket lehet felhasználni szabály készítésekor
- A bal oldalon csak 1 darab NT elemet lehet választani. Ezzel lekorlátoztam a létrehozható szabályok körét a Chomsky-féle 2-es és 3-as kategóriára.
Egy szabály elkészítésekor lehetőségünk van a legördülő választó mezőkből kiválasztani a szükséges T és NT elemet. Ha a felső részben engedélyezzük a használatát azaz kiválasztunk egy T vagy NT elemet, az azonnal megjelenik a legördülő listában található elemek között. Így bármikor változtathatunk a szükséges N és NT elemek között.
Figyelem: ha viszont törlünk egy engedélyezést a T vagy NT elemek között, akkor viszont azonnal törlődnek azok a szabályok a szabály halmazból amelyek tartalmazzák a most már nem engedélyezett T vagy NT elemet! Ezzel a megszorítással mindig konzisztens marad az elemek kijelölése a szabály halmazzal.
A szerkesztett szabály tagjainak számát lehet bővíteni vagy csökkenteni a '+' és '-' gombok segítségével. A minimális tagok száma egy, de a maximális tagok száma nincs korlátozva.
Ha elkészültünk a szabály szerkesztésével, akkor a 'Szabály felvétele a szabályhalmazba' gomb segítségével tudjuk a szabály halmaz közé rögzíteni az új szabályt.
Lehetőségünk van egy adott szabályt törölni a szabály halmazból az adott szabály mellett található 'Törlés' gomb segítségével. Mivel egy-egy szabály szerkezete viszonylag egyszerű, ezért nem láttam szükségesnek egy módosítás funkció létrehozását. Módosítás esetén kövessük a következő folyamatot: törlés majd új szabály felvétele.
Szabályhalmaz feldolgozásának műveletei
Szabályhalmaz feldolgozási műveletek beállításai
Max mélység
A 'max. mélység' beállításával azt állíthatjuk be, hogy amikor a szabályhalmaz alkalmazásával a rendszer előállítja a lehetséges szavakat, akkor rekurzívan milyen mélységig kövesse a szabályokat a rendszer.
Pl. A→aA szabály esetében a végtelenségig lehetne 'a' karaktert tartalmazó szavakat előállítani. Ezen beállítással ez lekorlátozható pl. maximum 10 karakter hosszú szóra.
Max szó
A 'max. szó' beállításával azt állíthatjuk be, hogy mennyi legyen a maximálisan előállított szavak száma. Az előző pontban is említett példa esetében ez végtelen lenne, ennek a beállításnak az alkalmazásával ez lekorlátozható pl. maximum 1000 db szóra.
Szavak
A szavak előállításának végeredményét lehet szabályozni ezzel a kapcsolóval. A szavak megjelenési formátumát tudjuk szabályozni.
Egyedi szavak megjelenítése
A rendszer csoportosítja az egyes szavakat és minden szórt csak egyszer jelenít meg, és megmutatja a szó mellett a szó előfordulási mennyiségét is. A szavak ebben az esetben ABC sorrendben jelennek meg.
Minden szó megjelenítése
Minden egyes szót megjelenít a rendszer. Így előfordulhat, hogy egy szó többször is meg fog jelenni a listában. Ezzel a beállítással végig tudjuk követni a szavak előállítási sorrendjét (nincs sorba rendezés).
