Professional Documents
Culture Documents
Szokás beszélni az úgynevezett üresszóról is, ami egy matematikai absztrakció, ugyanis olyan
szót jelent, melynek egyetlen betűje sincs, vagyis az egyetlen betűt sem tartalmazó
betűsorozatot. Speciálisan, jelölje λ a továbbiakban az üresszót. Itt jegyezzük meg hogy bár az
automataelméleti szakirodalomban az ε-t (is) szokás az üresszó jelölésére használni, ebben a
jegyzetben mi végig a λ jelet fogjuk használni. Tehát | λ | = 0. A V +∪{ λ } halmazt a V feletti
(összes) szavak halmazának hívjuk, s V *-al (ejtsd vécsillag) jelöljük. Speciálisan, ha
valamely a ∈ V-re V = { a} azaz Vegyelemű halmaz, s egyetlen eleme egy bizonyos a betű,
akkor gyakran írunk { a } * helyett a *-ot, illetve { a}+ helyett a +-t. Valamely V *-
beli p=a 1…am és q=b 1…bn (a 1,…,am ,b 1,…,bn ∈ V) szavakat pontosan akkor tekintjük
egyenlőknek, ha m = n és minden i = 1,…,n-re ai = bi . Ezt a tényt ki szokás úgy is fejezni,
hogy V*-ban csak grafikus (betűről - betűre megegyező) egyenlőségek léteznek.
A V ábécé feletti szavak egy tetszőleges L halmazát a V ábécéből alkotott (formális) nyelvnek
nevezzük, vagyis a V * halmaz részhalmazait V feletti formális nyelveknek, vagy röviden V
feletti nyelveknek, vagy csak egyszerűen nyelveknek hívjuk.
Valamely L ⊆ V nyelvet üresnek, végesnek vagy végtelennek hívunk ha az L (mint
*
Az így definiált nyelvfogalom túl általános, magában foglalja mind a mesterséges, mind a
természetes (írott) nyelvek összességét. A kérdés viszont az, hogyan lehet ténylegesen
megadni egy konkrét nyelvet. Az egyszerű tulajdonságokkal rendelkező nyelveket máris
megadhatjuk a halmazok megadásának különböző módjai szerint. Legyen például a véges
ábécénk mindössze két elemű: V={0,1}. Ekkor az
L 1 = { λ},
L 3 = { 1 i | i prím }
halmazok mindegyike egy-egy nyelv a fenti definíció értelmében. Szükségünk van azonban
olyan eszközökre, amelyekkel a fentieknél lényegesen összetettebb nyelveket is definiálhatunk.
Ebből a célból vezetjük be a generatív nyelvtan fogalmát.
Tehát a továbbiakban olyan nyelveket fogunk csak vizsgálni, melyek véges sok adat
segítségével speciális módon, az úgynevezett generatív nyelvtanokkal megadhatók.
Megjegyezzük azt is, hogy az általunk használt szófogalom nem esik egybe a természetes
nyelvek szófogalmával, hisz egy természetes nyelvet úgy szokás tekinteni, mint az adott nyelv
összes mondatainak halmazát. De tekinthetünk egy természetes nyelvet úgy is mint a nyelv
összes véges hosszú szövegeinek halmazát. A szóközt és egyéb írásjeleket is felvéve az
ábécébe, az általunk definiált szófogalom amellett, hogy magában foglalja a szokásos
szófogalmat, magában foglalja mind a mondat fogalmát, mind pedig a tetszőleges véges
hosszúságú szöveg fogalmát is.
2.2. példa - Szavak egyenlősége
Legyen V = { 1, 2, + }. Ekkor (V *- ban !) fennáll, hogy 1+1≠2, mivel az 1+1 szó nem
egyezik meg "betűről - betűre", azaz grafikusan a 2 szóval. ★
* +
AV halmazon (és a V halmazon is) szokás bevezetni egy (nagyon egyszerű tulajdonságú)
műveletet, melyet szorzásnak nevezünk.
Ap=a 1 …a m és q = b 1 …b n ( a 1, …, a m , b 1, …, b n ∈V)
szavak szorzatán a pq = a 1 a 2 …a m b 1 b 2 …b n szót értjük. Két V *- beli (vagy két V +-
beli) szót tehát úgy szorzunk össze, hogy e szavakat (megfelelő sorrendben) egymás mellé
(után) írjuk. E műveletet konkatenációnak vagy összefűzésnek is szokás hívni.
Természetesen ez a szorzásfajta általában nem kommutatív, azaz általában nem teljesül
minden p, q ∈ V * párra a pq = qp egyenlőség. Amennyiben p = p 1 … p k ( ∈ V * k = 1,2,… )
továbbá p 1 = p 2 = … = p k = q úgy alkalmazni fogjuk a p= q k jelölést, s ezesetben p- t
a q szó k-adik hatványának is nevezzük. Tehát a q szó k- adik hatványán az önmagával
vett k- szoros konkatenációját értjük. Továbbá megállapodunk abban, hogy minden
szó nulladik hatványa az üresszó (jelekben: ∀ q ∈ V * :q 0= λ.) Röviden úgy is mondhatjuk,
hogy egy szó k- adik hatványa nem más mint k- szoros ismétlődése (beleértve a nullaszoros
ismétlődést is).
2.4. példa - Szavak konkatenációja
Legyen ismét V = { ab}. Ekkor az abba V *- beli szó baba V *- beli szóval való
szorzata abbababa lesz (ami persze nem egyezik meg a babaabba szóval. A szorzás
tehát valóban, általában nem kommutatív). Igaz továbbá (definíció szerint),
hogy baba=(ba)2. ★
A V *-ban ezen szorzás műveletre nézve a λ üresszó egységelem lesz, hisz minden p ∈ V *-
ra pλ = λp = p (annak megfelelően, hogy ha egy szó - beleértve az üresszót is - elé vagy mögé
nem írunk egyetlen betűt sem, azaz az üresszót "írjuk", akkor marad az eredeti szó).
Nyilvánvaló továbbá, hogy minden p,q ∈ V * párra | pq | = | p | + | q | .
Nyilvánvaló, hogy V + zárt marad a szorzás, azaz az összefűzes műveletére, hisz két nem
üresszót egymás után írva, azaz összefűzve, nem kaphatunk üresszót.
Legyen p és q tetszőleges két szó V *-ban. Azt mondjuk, hogy p kezdőszelete (prefixe) q-nak,
ha van olyan r ∈ V *, hogy q = pr. Pontosabban, ha q = pr mellett | p | = k akkor a p szót
a q szó khosszúságú kezdőszeletének nevezzük (ekkor, ha 0 < k < | q | , akkor p a q valódi
kezdőszelete). Hasonlóan, ha van olyan s ∈ V * szó, hogy q = sp, akkor azt mondjuk
hogy p a q-nak végződése (szuffixe) és ha |p| = m akkor m hosszúságú végződésről
beszélünk (ekkor ha p ≠ λ és p ≠ q akkor p valódi végződése a q-nak). Végül, a p ∈ V * szót
a q ∈ V * szó részszavának mondjuk, ha van olyan r, s ∈ V *, hogy q = rps.
Amennyiben p ≠ qp ≠ λ, valódi rész-szóról beszélünk. Tehát, egy szó önmagától különböző
nemüres kezdőszeleteit, végződéseit, illetve részszavait valódi kezdőszeletnek, valódi
végződésnek, illetve valódi részszónak hívjuk.
Egy p ∈ V + szó utolsó betűjére használni fogjuk a ≫ p jelölést.
Két nyelv között akkor értelmezhetünk valamilyen műveletet, ha ugyanazon V ábécé felett
vannak értelmezve. (Ha ez nem teljesül, akkor először a nyelveket kell átdefiniálni formálisan
egy közös ábécé, pl. a két ábécé uniója felettire.)
komplementer: =V * ∖ L 1.
Mejegyzés. Mivel a V ábécé mint halmaz egyben tekinthető egy formális nyelvnek is, a
korábbi V * és a V + jelölés éppen egybeesik a most definiált iteráció műveletek V-re való
alkalmazásának eredményével.
L 1 ∩L 2 =L 2 ∩L 1 (a metszet kommutatív),
L 1 ∩L 1 =L 1 (a metszet idempotens),
(L 1 ⋅L 2 )⋅L 3 =L 1 ⋅(L 2 ⋅L 3 ) (a konkatenáció asszociatív),
L 1
* =L 1
+ ∪{ λ},
(L 1
* ) * =L 1
* (az iteráció idempotens tulajdonsága),
(L 1
+ ) + =L 1
+ (a + művelet idempotens tulajdonsága),
(L 1
* ) + =(L 1
+ ) * =L 1
*.
A fenti két tulajdonságból rögtön következik, hogy az üresszó képe az üresszó lesz,
ugyanis h ( p ) = h ( p λ ) = h ( p ) h ( λ ) minden p ∈ V 1 * szóra.
Triviális megoldások:
L 1 = ∅, L 1 = { λ } vagy a szimmetria miatt L 2-re teljesül az előző esetek
egyike.
L 1 = L 2.
V ábécé egyelemű.
legyen V = { a, b}, L 1 = { λ, a}, L 2 pedig legyen azon V feletti szavak halmaza, amelyekben
pontosan egy b szerepel. Ekkor L 1 L 2 = L 2 L 1 = L 2. ★