02. sintaksa.ppt

Upload: beba-bebic

Post on 15-Oct-2015

39 views

Category:

Documents


1 download

TRANSCRIPT

  • SINTAKSA PROGRAMSKIH JEZIKA

  • DefinicijeSintaksa - relacije (veze) izmeu znakova ili grupa znakova, nezavisno od njihovog smisla ili naina interpretacije ili korienja. (ISO 07.02.04)Semantika - relacije (veze) izmeu znakova ili grupa znakova sa njihovim smislom, nezavisno od njihove interpretacije i koriaenja. (ISO 07.02.05)Pragmatika - relacije (veze) izmeu znakova ili grupa znakova sa njihovom interpretacijom i korienjem. (ISO 07.02.08.)

  • Elementi gramatikeTerminali Osnovni simboli od kojih se satoje rei jezika. Npr. kljune rei nekog programskog jezika if, then, else su terminalni simboli. Neterminali Su pomone sintaksne promenljive kojima se oznaavaju skupovi rei. Neterminali se uvode da bi se lake definisao jezik koji se generie gramatikom, kao i da bi se lake definisala hierahijska struktura jezika. Startni simbol Neterminal iz kojeg se izvode sve rei jezika koji se definie.Produkciono pravilo definie nain na koji se stvaraju nizovi koji mogu da se sastoje od neterminala i terminala. U optem sluaju pravila su oblika: x := y

  • NotacijaTerminalni simboli:mala slova abecede a,b,c,...Simboli operatora *, +, -, ..Specijalni znaci: (, ), , Cifre 0,1,2, ...9.Boldirane rei kaoto su id ili if.Neterminali:Velika slova A, B, C, ...S, ako se pojavljuje je obino startni simbolRei napisane malim slovima italik: expr, nar ili iymeu zagrada: , Pravilax ::= y ili x -> y

  • Direktno izvoenje i redukcijaNiz z je direktno izveden iz niza z. Ovaj postupak se naziva direktno izvoenje i oznaava se sa:Niz z se redukuje na niz z.Vai i:

  • Formalne gramatikeNoam ChomskyG = ( Vn, Vt, S, P)

    Vai:P je skup smena oblika:

    Jezik:

  • Tipovi gramatikaGramatike tipa 0G = ( Vn, Vt, S, P) u kojoj su sve smene iz skupa P oblika:

    Primer:

    Primer izvoenja:

  • Gramatike tipa 1.Konteksna gramatikaKako je |x| >= 1 sledi da je i |y| >= 1, to znai da na desnoj strani pravila ne moe da bude prazan niz e.

  • Gramatike tipa 2.Beskoneksne gramatikeAko u gramatici G svaksmena ima oblik:

    Za ove gramatike se koristi i naziv Bekusova normalna forma BNF i najee se koriste za opis programskih jezika. Primer: Sledea gramatika definie proste aritmetike izraze:

  • Gramatike tipa 3.Regularne gramatikeGramatika G je gramatika tipa 3 ako je svaka njena smena oblika: Za ove gramatike se koriste jo i nazivi Regularne gramatike, Gramatike sa konanim brojem stanja i Automatne gramatike.Realizuju se preko konanih automata.

  • Relacije izmeu jezikaGramatike tipa 0 su najoptije i praktino su sinonim za algoritam. Sva algoritamska preslikavanja se mogu opisati gramatikama tipa 0. Gramatike tipa 3. pokrivaju najui skup jezika ali je za ove jezike najjednostavnije reiti problem prepoznavanja. Prepoznaju se pomou konanih automata.

  • BEKUSOVA NORMALNA FORMA (BNF NOTACIJA)Gramatika tipa 2BNF notacija se sastoji od konaenog broja reenica koje se nazivaju metalingvistieke formule (metalingvistieka pravila, sintaksna pravila).U okviru pravila koriste se sledei metasimboli:::= definie se kao, po definiciji je,| li (slui za odvajanje moguih varijanti u definiciji)Metapromenljive (pomone promenljive) su simboli metajezika koji predstavljaju imena sintaksnih kategorija (strukturnih jedinica).

  • PravilaOpti oblik metalingvistikih pravila je: ::=

    ::= ||

  • Primer opisa jezika ::= begin end ::= | ; ::= := ::= A | B | C ::= + | - |

  • Primeri metalingvistikih pravila

    ::= 0|1|2|3|4|5|6|7|8|9 ::= go to | if | then | else ::= := ::= if then | if then else

  • Primena gramatike jezika

    begin endbegin ; endbegin := ; endbegin A := ; endbegin A := B + ; endbegin A := B + C ; endbegin A := B + C ; endbegin A := B + C ; := endbegin A := B + C ; B := endbegin A := B + C ; B := endbegin A := B + C ; B := C end

  • Rekurzivna pravila

    ::= |

    ::= | |

  • Primer 2.3 Gramatika jedne proste naredbe dodeljivanja

    ::= := ::= A | B | C ::= + | * | ()|

  • Primer 2.4 Izvoenje naredbe A := B * (A + C)

    := A := A := * A := B * A := B * ()A := B * ( + )A := B * (A + )A := B * (A + )A := B * (A + C)

  • Stablo sintaksne analize

  • FORTRAN NOTACIJAProirena Bekusova normalna formaMetalingvistike formuleCALL sub [( [ a[, a]... ] )]

    Metalingvistike promenljive slue za oznaavanje sintaksnih kategorija- re ili grupa rei napisanih malim slovima i povezanih znakom za povezivanje (podvlaenje), npr. lista, ime_funkcije; - niz od jednog ili vie slova sa indeksom na kraju, npr. e1, e2, e3;- jedan od gore navedenih oblika u kome su rei podvuene ili napisane kurzivom, npr. d1, tip, a, ili d1, tip, a. Izdvajanje sintaksnih kategorija na ovaj nain vri se kada na njih treba da se obrati posebna panja, npr. tako se izdvajaju elementi koji treba pri pisanju programa da se zamene konkretnim vrednostima.

  • Ostali elementiElementi jezika FORTRAN su osnovni simboli jezika, terminali metalingvistiki operatori. Oni oznaavaju sami sebe, a piu se kao nizovi sastavljeni od specijalnih znakova i velikih slova azbuke jezika FORTRAN.

    Par zagrada [, ] ukazuje na opcione elemnte tj. element obuhvaen njima moe da se izostavi.Primer: DO s [,] i = e1,e2,[,e3]

    Simbol ponavljanja ..... postavlja se uz druge sintaksne elemente ioznaava da element koji stoji ispred njega moe da se ponovi vie puta sukcesivno.Primer: INTEGER v [,v ]...

  • COBOL NOTACIJA

  • ADA NOTACIJAModifikovana Bekusova normalna formaKoristi sledee metasimbole:= definie se kao, po definiciji je;| ili;[] opcioni element;{} ponavljanje proizvoljan broj puta (i nijednom);.. interval, npr. 1..n;--komentar

    identifikator = slovo{[znak-za-povezivanje]slovo-ili-cifra}slovo-ili-cifra = slovo|cifraniz-znakova = {znak}

  • BS NOTACIJAMeunarodni standard za definisanje meta jezika za opis programskih jezika.Zasniva se na Wirtovoj modifikovanoj Bekusovoj Normalnoj formi.Zagrade {,} oznaavaju ponavljanje (ukljuujui i nijednom);Zagrade [ ] oznaeavaju opcione elemente;Terminalni simboli u opisu sintakse stavljaju se izmeu znaka navoda;Postoji poseban simbol za oznaavanje znaka nekog pravila;Koristi se eksplicitno definisan simbol za povezivanje metalingvistiekih promenljivih, tako da ne moraju da budu smo od jedne rei;Postoji poseban znak za izuzetke npr. comment = commentPostoji eksplicitno definisan operator ponavljanja, npr. fortran_oznaka = 5 * slovo_ili_razmak;U opisu sintakse mogu se koristiti komentari koji se stavljaju izmeu zagrada (* i *);Postoji mehanizam poznat pod nazivom specijalni nizovi tako dakorisnici imaju mogunosti da proire metajezik.

  • PreporukeOvom notacijom preporuuju se neki metajezieki simboli (operatori):* ponavljanje,- izuzetak,_ simbol povezivanja,| simbol za razdvajanje alternativa= operator definisanja;; terminator

    Primeri:slovo = A B C D E F G H I O U V samoglasnik = A E U I Osuglasnik = slovo - samoglasnik.

  • SINTAKSNI DIJAGRAMIPASCAL

  • SINTAKSNI DIJAGRAMIFORTRAN