Alapfogalmak, nyelvek, grammatikák
- Alapfogalmak, nyelvek, grammatikák
Hol használják a formális nyelveket?
- A természetes nyelvek gépi feldolgozása, matematikai modellezése.
- Programozási nyelvek, fordítóprogramok
- Kódelmélet
- Mintafelismerés
Alapfogalmak, jelölések
- Ábécé:* egy véges, nemürres halmaz.
- Betűk: az ábécé elemei.
- Szó, (string): Egy ábécé elemeiből képzett véges sorozat.
- Egy szóban lévő betűk számát a szó hosszának nevezzük. ( = n)
- : üres szó
- jelöli a ábécé feletti szavak halmazát, beleértve az üres szót is.
- \
A szavait hosszlexikografikus (shortlex) rendezés szerinti sorrendben soroljuk fel.
- Résszó: az szó a szó résszava, ha
- Valódi résszó: ha és
- Prefix: ha
- Suffix ha
Ezek valódiak, ha -tól és -tól küéönböznek.
-
Nyelv: egy egy részhalmaza.
-
Üres nyelv:
-
Véges nyelv: véges, ellenkező esetben végtelen nyelv
-
Prefix nyelv:
-
Suffox nyelv:
Példák:
- (véges)
- (végtelen)
- (végtelen)
Műveletek szavakon
Konkatenáció
Legyen V egy ábécé továbbá legyenek és V feletti szavak. Ekkor az szót az és a konkatenáltjának nevezzük.
A konkatenáció mint művelet asszciatív, de általában nem kommutatív.
a konkatenáció műveletére zárt.
A konkatenáció egységelemes művelet, at egységelem az .
-edik hatvány: egy szó -szeres konkatanációja saját magával. ()
Formálisan:
Ekkor:
Tükörkép
Legyen egy ábécé feletti szó. Az szó -rel jelölt tükörképe (vagy megfordítottja) az a szó, amelyet úgy kapunk, hogy betűit az eredetihez képest fordított sorrendben konkatenáljuk. Vagyis i-edik betűje éppen -nak az . betűje .
Ha , akkor -t palindrom-nak nevezük.
Műveletek nyelveken
- Halmazműveletek ()
- Komplementer jelölése:
- Konkatenáció:
- asszociatív
- nem kommutatív
- -edik hatvány
- Tükörkép:
Egy nyelv iteratív leárt
Az nyelv iteratív lezártja (kleene-lezártja):
AZ pozitív lezártja:
, ha és , ha .
Homomorfizmus
Legyen és két ábécé. A leképezést homomorfizmusnak nevezzük, ha teljesülnek a következő feltételek:
- egyértelmű, azaz minden szóra pontosan egy szó létezik, amelyre teljesül.
- , minden -ra.
h-homomorf képi
Legyen homomorfizmus. A homomorfizmus -mentes, ha bármely szóra. Legyen homomorfizmus. Az nyelv h-homomorf képén a nyelvet értjük.
Formális nyelvek megadása
- Véges nyelvek esetén felsorolással
- Formulával
- Reguláris kifelyezéssel
- Végtelen nyelvek esetén felsoroló algortimussal
- Generatív grammatikákkal
- A grammatikák szintetizáló eszközök, egyetlen szimbólumból egy szabályrendszer segítségével szavakat lehet felépíteni. Azon szavak halmaza, melyeket fel lehet építeni egy nyelvet határoz meg, tehát a grammatika szabályrendszere meghatároz egy nyelvet.
- Matematikai gépek, automaták segítségével
- Az automaták elemző, analitikus eszközök. Az automaták bemenete egy szó, kimenete egy bináris érték. Az automata szabályrendszere szerint feldolgozza a szavakat, csak bizonyos szavak esetén ad igen választ, ezen szavak egy nyelvet alkotnak, melyet az automata szabályrendszere határoz meg.
Figyelem! Nem feltétlen lehet minden eszközzel minden nyelvet megadni. Be fogjuk látni például, hogy reguláris kifejezéssel kevesebb nyelvet lehet leírni mint egy általános grammatikával, de az se elég az összes {0, 1} ábécé feletti nyelv leírásához.
Nyelvcsalások
Ha egy halmaz, jelölje az halmaz hatványhalmazát, azaz
Nyelvcsalád alatt nyelveknek egy halmazát értjük.
Grammatikák
Egy rendezett négyest grammatikának nevezünk, ha
- és diszjunkt véges ábácék. elemeit nemterminális, elemeit pedig terminális szimbólumnak nevezzük.
- a grammatika kezdőszimbóluma
- rendezett párok véges halmaza, ahol és legalább egy nemterminális szimbólumot tartalmaz
A halmaz elemeit szabályoknak (vagy átírási szabályoknak vagy produkcióknak) hívjuk.
A gyakorlatban az jelölés helyett szinte mindig az jelölést használjuk.
Egylépéses levezetés
Legyen egy generatív grammatika és legyen .
A szó közvetlenül vagy egy lépésben levezethető az szóból -ben,
jelölése: , ha és
, ahol és .
Többlépéses levezetés
Legyen egy generatív grammatika és legyen .
A szó (több lépésben) levezethető, ha vagy van olyan és , hogy
és
Jelölés:
Reláció reflexív, tranzitív lezártja
Generált nyelv
Legyen egy tetszőleges generatív grammatika. A grammatika által generált nyelv alatt az szavakból álló halmazt értjük.
Vegyük észre, hogy a generált nyelv szavai mindig terminális szavak!