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).
Szabályhalmaz eltárolása
Lehetőségünk van eltárolni egy adott nyelvi szabályhalmazt. Meg kell adni egy elnevezést, és a funkció aktiválásával a 'localStorage' rendszerben eltárolódik az aktuális szabályhalmaz összes adata.
Eltárolt szabályhalmazok kezelése
Az eltárolt szabályhalmazok listázódnak ki ezen menüpont alatt. Lehetőségünk van
Betöltés Az eltárolt adatok betöltésére Felülírás Az eltárolt adatok felülírására az aktuális szabályhalmaz adataival Törlés Az eltárolt adatok törlésére
A rendszer kiegészítésképpen megjegyzi a mentés dátumát és azt is kilistázza a felhasználó számára.
