Produktsioonisüsteem

Lõplike keelte (keel = märgijadade hulk!) esitamiseks võib alati loetleda kõik keelde kuuluvad sõnad. Lõpmatute keelte esitamiseks tuleb kasutada mingit rekursiivset mehhanismi, mis Sellised asendusreeglid e. produktsioonid on sõnapaarid
v nool v'
Produktsioon p: v noolv' genereerib sõnast w sõna w', kui sõnu w, w' saab esitada kujul w = uvz, w' = uv'z (s.t. sõnad v, v' on vastavalt sõnade w, w' alamsõnad, u ja v on suvalised sõnad); öeldakse ka, et w' on saadud sõnast w produktsiooni p rakendamisega ja tähistatakse w p w'.
Noole asemel kasutatakse mõnikord ka muid sümboleid, näiteks programmeerimiskeele süntaksi kirjeldamisel (nn Bacus-Nauri valemites) kasutatakse sageli sümbolit ::=

Produktsioonisüsteem on produktsioonide hulk (lõplik). Produktsioonisüsteem P genereerib sõnast w sõna w', kui leidub derivatsioon

w p1 w1 p2 w2 ... pn wn = w'

kus p1, p2,..., pn P

või lühemalt w *P w'

Konkreetset produktsiooni või produktsioonisüsteemi tähistav alaindeks jäetakse sümbolites p, P sageli ära, kui kontekstist on arusaadav, millist produktsiooni või produktsioonisüsteemi mõeldakse, s.t. derivatsiooni tähistatakse lihtsalt w w1 w2 ... wn = w' ehk lühemalt w * w'

Näide. Produktsioonisüsteem {a nool aba, ab nool ba} genereerib sõnast ab kõikvõimalikus sõnad, kus on sama arv a-sid ja b-sid, s.t. sõnade hulga {w | |w|a = |w|b}


Ülesandeid:

1. Kirjelda genereerimissüsteemid, mis

  • genereerib kõigi sõnade hulga tähestikus {0,1}, mille pikkus on paarisarv, s.t. hulga {w, | |w| = 0 (mod 2)};
  • genereerib kõigi sõnade hulga tähestikus {0,1}, milles on ühepalju 0-e ja 1-i ja mis algavad 1-ga, s.t. hulga
    {w | w {0,1}*, w = 1w', |w'|0 = |w'|1 - 1 }


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

    Tagasi loengute sisukorra juurde