teorija formalnih jezika

Post on 09-Jan-2016

69 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

Teorija Formalnih Jezika. Danica Mili ć 164/07. Savremeni prevodioci i interpretatori programskih jezika zasnivaju se upravo na rezultatima teorije formalnih jezika. Opis formalnih jezika. Alfabet (azbuka, vokabular) je konačni skup znakova. - PowerPoint PPT Presentation

TRANSCRIPT

Teorija Formalnih Jezika

Danica Milić 164/07

Savremeni prevodioci i interpretatori programskih jezika zasnivaju se upravo na rezultatima teorije formalnih jezika.

Opis formalnih jezika

Alfabet (azbuka, vokabular) je konačni skup znakova.

Reč (string, word) na nekom alfabetu je niz znakova tog alfabeta.

Reč je konačna ako je niz koji je predstavlja konačan, odnosno reč je beskonačna ako je niz beskonačan.

Dužina reči je ukupan broj znakova koji čini reč. (Ako imamo neku reč z, njena dužina se označava kao |z|)

Prazna reč (označavamo je sa ε) je reč dužine nula.

Ako su u i v dve reči na nekom alfabetu njihovim spajanjem (nadovezivanjem, konkatenacijom) dobijamo reč uv i važi da je |uv| = |u| + |v|

Reč u je podreč reči v ako postoje reči x i y takve da je v=xuy. Ako je x prazna reč i v=uy onda je u prefiks a ako je y prazna reč i v=xu onda je u sufiks reci v.

Oznake:

wº=ε wn+1=wwn

w ˉ¹ - reč u kojoj je redosled znakova obrnut u odnosu na w.

A+ - skup svih reči nad alfabetom A izuzev prazne reči ε

A* - skup svih reči uključujući i ε

Jezik je bilo koji podskup skupa svih reči.

Ako je L jezik na alfabetu A, njegov komplement C(L) je skup A*\L tj skup svih reči alfabeta koje nisu u L.

Nad jezicima nad istim alfabetom se primenjuju:

1. Unarna operacija zatvorenja (Klinijeva zvezdica) definisana sa L*={w: w=w1w2..wk za neko k≥0 wi Є L, i = 1, k} gde je L neki jezik.

2. Binarna operacija spajanja definisana sa L1

.L2={w: w=xy, x Є L1, y Є L2 }

3. Unarna operacija komplementiranja jezika, binarne operacije unije, preseka itd..

Predstavljanje jezika

Vrši se: Zadavanjem postupka koji generiše sve reči

jezika u nekom redosledu, tako da se svaka reč pojavi kao izlaz nakon nekog konačnog broja koraka rada.

Zadavanjem postupka za prepoznavanje koji za svaku reč jezika dobija kao ulazni podatak odgovara sa ‘da’ ako pripada jeziku, dok za reči koje ne pripadaju jeziku odgovara sa ‘ne’ (ili se eventualno ne zaustavlja, zavisno da je skup reči odlučiv ili ne.)

Sistemi za generisanje jezika su: gramatike, regularni izrazi itd.

Sistemi za prepoznavanje jezika obuhvataju apstraktne mašine, takozvane automate, koji se dobijaju raznim restrikcijama modela Tjuringove mašine.

Jezici za koje postoje postupci generisanja i/ili prepoznavanja su barem parcijalno odlučivi.

Gramatike

Def: Gramatika je uređena četvorka

G=<VN, VT, P, S> gde su:

VN - skup neterminalnih znakova

VT - skup terminalnih znakova

P - skup pravila izvođenja

S - početni simbol

I važi da su:

VN, VT i P neprazni konačni skupovi

VN ∩ VT =Ø

V=VN U VT

P je skup izraza oblika α→β, gde su α Є V*.VN

.V* I β Є V*

S Є VN

Ako su γ i δ reči na alfabetu V i ako je α→β ЄP, onda se reč γβδ direktno izvodi u gramatici G iz reči γαδ ( u oznaci γαδ→γβδ)

Ako su α1, α2... αn reči na alfabetu V za koje je α1→Gα2,..., αn-1→Gαn onda se kaže da se reč αn izvodi iz reči α1 (u oznaci α1→*Gαn)

Dužina izvođenja α1→*Gαn je broj primena pravila izvođenja

Jezik L(G) generisan gramatikom G je skup {w: S →*Gw, w ЄVT*} Dve gramatike G1 I G2 su ekvivalentne ako je L(G1)=L(G2)

Hijerarhija Čomskog

Gramatike tipa 0 (gramatike bez ograničenja) uključuju sve formalne gramatike. Generišu sve jezike koje može prepoznati Tjuringova mašina.

Gramatika tipa 1 (konteksno osetljive) ako važi da je

svako pravilo izvođenja α→β i |β|≥|α|. Jezici koje gramatike ovog tipa opisuju su tačno svi jezici koje može prepoznati linearno ograničen automat (nedeterministička Tjuringova mašina čija je traka ograničena konstantom puta dužina ulaza.)

Gramatika tipa 2 (konteksno slobodna) – ako za svako pravilo izvođenja α→β gramatike G i važi da je α neterminalni znak i da je β neprazna reč. Kontekstno slobodni jezici su teorijska baza za sintaksu većine programskih jezika.

Gramatika tipa 3 (regularna) – ako su pravila izvođenja A →aB, odnosno A →a, gde su A, B ЄVN i a ЄVT. Ovakve gramatike generišu regularne jezike.

Jezici koji im odgovaraju nazivaju se: Jezici tipa 0 ili parcijalno odlučivi jezici Jezici tipa 1 ili konteksno osetljivi jezici Jezici tipa 2 ili konteksno slobodni jezici Jezici tipa 3 ili regularni jezici

Primer:

G=<{A, B, S}, {0,1,..,9}, {S→0, S→1,…, S→9, S→AB, A→1,…, A→9, B →0, B→1,…, B→9, B →BB}, S}> -konteksno slobodna gramatika koja generise jezik koji se sastoji od prirodnih brojeva.

G=<{A, S}, {0,1,..,9}, {S→0, S→1,…, S→9, S→1A, S→2A,…, S→9A, A →0, A →1,…, A →9, A →0A, A →1A,…, A →9A},S} –regularna gramatika koja generiše isti jezik

Na osnovu ograničenja koja se postavljaju jasno je da su gramatike tipa 3 istovremeno i tipa 2, a gramatike tipa 2 su istovremeno i tipa 1 i da su gramatike tipa 1 istovremeno i tipa 0.

Prema klasifikaciji Čomskog, ε ne pripada ni jednom od jezika tipa 1, 2 ili 3. Definicija se slabi dodavanjem pravila S → ε, gde je S početni simbol i on se ne nalazi sa desne strane ni jednog od pravila izvođenja.

Pravilo S → ε može se primeniti samo u prvom koraku izvođenja.

Ako je L jezik tipa 1, 2 ili 3 tada su istog tipa i jezici L U {ε} i L \ {ε}

(Ne)odlučivi problemi kod gramatika

Gramatika je odlučiva ako je odlučiv njome generisani jezik shvaćen kao skup. (Odlučiv je problem da li neka reč pripada jeziku)

Odlučive su sve gramatike tipa 1 ili višeg, pa za svaki odgovarajući jezik postoji postupak koji za svaku reč koja pripada jeziku odgovara sa ‘da’, a za one koje ne pripadaju sa ‘ne’.

Sledeći problemi nisu odlučivi u opštem slučaju, tj. za gramatike tipa 0: Da li proizvoljna reč pripada jeziku

generisanom gramatikom Da li je jezik generisan gramatikom podskup

jezika generisanog drugom gramatikom Da li su dve gramatike ekvivalentne Da li je generisan jezik prazan Da li je generisan jezik beskonačan

Tue sisteme

Neodlučiv problem Posmatra se konačan skup J parova reči za

koje se kaže da je x~y ako (x,y) ili (y,x) pripadaju skupu J. Postavlja se pitanje da li dve reči w i u ekvivalentne, odnosno da li se proizvoljnim brojem zamena podreči iz w odgovarajućim rečima sa kojima su u relaciji ~ može dobiti reč u. Zapravo, postavlja se pitanje da li w→*u u gramatici čiji skup pravila sadrži x →y i y →x za (x,y)Є J

Postov problem korespodencije

Za zadati alfabet A posmatraju dve liste od po k reči l1=w1,w2,…wk i l2=u1,u2,…uk, a postavlja se pitanje da li postoji niz brojeva i1, i2,…,im, m≥1, tako da je wi1

wi2…wim

=ui1ui2

…uim

top related