25
Teorija Formalnih Jezika Danica Milić 164/07

Teorija Formalnih Jezika

  • Upload
    yagil

  • View
    69

  • Download
    4

Embed Size (px)

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

Citation preview

Page 1: Teorija Formalnih Jezika

Teorija Formalnih Jezika

Danica Milić 164/07

Page 2: Teorija Formalnih Jezika

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

Page 3: Teorija 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.

Page 4: Teorija Formalnih Jezika

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.

Page 5: Teorija Formalnih Jezika

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.

Page 6: Teorija Formalnih Jezika

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 ε

Page 7: Teorija Formalnih Jezika

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.

Page 8: Teorija Formalnih Jezika

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..

Page 9: Teorija Formalnih Jezika

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.)

Page 10: Teorija Formalnih Jezika

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.

Page 11: Teorija Formalnih Jezika

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

Page 12: Teorija Formalnih Jezika

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

Page 13: Teorija Formalnih Jezika

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

Page 14: Teorija Formalnih Jezika

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)

Page 15: Teorija Formalnih Jezika

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.)

Page 16: Teorija Formalnih Jezika

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.

Page 17: Teorija Formalnih Jezika

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

Page 18: Teorija Formalnih Jezika

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

Page 19: Teorija Formalnih Jezika

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.

Page 20: Teorija Formalnih Jezika

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.

Page 21: Teorija Formalnih Jezika

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

Page 22: Teorija Formalnih Jezika

(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’.

Page 23: Teorija Formalnih Jezika

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

Page 24: Teorija Formalnih Jezika

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

Page 25: Teorija Formalnih Jezika

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