Tähestik, sõna, keel

Märgikeele kirjeldamine algab keele väljendites (sõnades ja lausetes) lubatud sümbolite, s.t. tähtestiku defineerimisega.
Tähestik on lõplik hulk üksteisest eristatavaid sümboleid; tähestiku (tähtede hulga) esitamisel kasutatakse tavaliselt metasümboleid (s.t. tähestikku mitte kuuluvaid sümboleid) { , } ja " ", seega näiteks {0,1} on binaarsümbolitest 0,1 koosnev kaheelemendiline tähestik. Et metasümboli , kasutamine hulga elementide eraldajana ei tekitaks segadust, esitatakse tähestikku kuuluvad märgid (. , - ; jne) tavaliselt jutumärkide vahel (seega ka jutumärgid on siin metasümbolid, s.t. ei kuulu tähestikku); näiteks programeerimiskeele tähestik võiks olla
{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,Õ,Ä,Ö,Ü,X,Y,Z, ",", ".", "-",";",""}
( tähistab tühikut).
Sõna (antud tähestikus) on igasugune selle tähestiku tähtedest moodustatud jada, näiteks: a, aasd, aDFadqDadADQDA on sõnad; ka tühi sõna on sõna. A* on kõigi sõnade hulk tähestikus A, A+ = A*\ , st. A+ on kõigi mittetühjade sõnade hulk. A2 = AA, st. A2 on kõigi kahetäheliste sõnade hulk Sõna w pikkust tähistatakse l(w), näit. l(vwc) = 3; la(w) on tähe "a" esinemiste arv sõnas w, näiteks lt(mitte) = 2.

Teoreem: A*= A U A2 U A3 U ...

Keel on mingi kõigi sõnade hulga A* alamhulk (seega keel on sõnade hulk ). Formaalsete keelte teooria tegeleb lõpmatute keelte: genereerimismehhanismide (formaalsete grammatikate) ja tunnistamismehhanismide (abstraktsete automaatide) uurimisega. Genereerimismehhanism (e. grammatika) on algoritm, mis suudab genereerida (moodustada) kõik keelde kuuluvad sõnad (ja ainult need); eespool olid toodud eesti keele lihtlause genereerimismehhanism ja lihtsa programmeerimiskeele programmide genereerimismehhanism. Tunnistamismehhanism on algoritm, mis mingi sõna w ja keele L jaoks (mõlemad samas tähestikus) suudab vastata küsimusele: w L ?

Näide 1. Olgu tähestik {0,1}, siis genereerimismehhanism
algus = 0
algus = algus 00
sõna = algus 1
annab üldmõiste "sõna" väärtuseks jadad 01, 0001, 000001, 00000001 jne


Ülesandeid:

1. Kirjelda genereerimismehhanism, mis genereerib kõik kahendsüsteemis kirjutatud paaris täisarvud.
2. Kirjelda genereerimismehhanism, mis genereerib kõik korrektselt kirjeldatud matemaatilised avaldised, kus on kasutatud kahendsüsteemis kirjutatud arve ja nelja aritmeetilist tehet.


Küsimused, probleemid:
jaak@cc.ttu.ee

Tagasi loengute sisukorra juurde