Regular Expression vs. Context-Free Grammars. Ambiguity. NFA to CFG. Neden RE ler kullanilir?
|
|
- Umut Gündoğdu
- 8 yıl önce
- İzleme sayısı:
Transkript
1 Ambiguity Ambiguous Grammar: Bazi sentence lar icin birden fazla parse tree ureten grammarlere denir. Ambiguous Grammar ler bazi sentence lari birden fazla leftmost/rightmost derivation larla utetirler. Cogu parser lar ambiguity elimine etmeye calisirlar Regular Expression vs. Context-Free Grammars - RE ile ifade edilebilen her bir dil CFG ile de ifade edilebilir. (a b)*abb A 0 aa 0 ba 0 aa 1 A 1 ba 2 A 2 ba 3 A 3 5/24/2004 Formal Diller 5.1 5/24/2004 Formal Diller 5.2 start (a b)*abb a/b 0 a 1 2 A 0 aa 0 ba 0 aa 1 A 1 ba 2 A 2 ba 3 A 3 b NFA to CFG b 3 NFA daki her bir state icin bir nonterminal olustur. Eger state i den state j ye a sembolu ile gecis varsa A i aa j bir turetimdir. Eger i start state ise A i dilin start semboludur. Neden RE ler kullanilir? Her RE ile ifade edilebilen dil, CFG ile ifade edilebiliyorsa neden RE lar dilin lexical syntax ini ifadede kullanilir? Lexical rules (kurallar) oldukca basit, dolayisiyle onlari tanimlamak icin grammar ler gibi guclu notasyonlara ihtiyacimiz yoktur. RE genellikle daha kolay anlasililir compact notasyonlar kullanir. Lexical analyzer lar RE lerden daha etkin bir sekilde otomatik olarak olusturulabilirler. Compiler design da basitlik saglanir Dilin syntactic yapisi lexical ve nonlexical bolumlere ayrilmak suretiyle compilerin front end kismi modulerize olmus olur. 5/24/2004 Formal Diller 5.3 5/24/2004 Formal Diller 5.4
2 CFG le Uretilen Dilin Ispati Grammar G nin L language ni olusturdugunu ispatlamak icin asagidaki iki seyi gostermemiz gerekir G nin urettigi her string in L de oldugunu gostermemiz L nin her bir stringi G tarafindan uretilebilir 5/24/2004 Formal Diller 5.5 S den uretilen her bir string balanced? Tume varim: Basis step: tek turetimle elde edilebilen tek string (balanced). Assumption: n stepten daha az sayida turtimle elde edilen tum stringler balanced olsun. S (S)S (x)s (x)y x ve y nin turetimi n den daha az steple oldugundan, x,y balanced Ornek S (S)S Her bir balanced string S den turetilebilinir mi? Tume varim: Basis step: S den turetilebilir. Assumption: boyu 2n (n >=1) den kucuk olan her string S den turetilebilsin ve w nun boyu 2n olsun. (x) in w nin esit sayida sol ve sag parantzleri olan en kisa prefixi oldugunu dusunelim. w (x)y olarak yazilabilir. 5/24/2004 Formal Diller 5.6 Ambiguity nin Elimine Edilmesi dangling-else if E 1 then if E 2 then S 1 else S 2 stmt if expr then stmt if expr then stmt else stmt other if stmt expr then stmt stmt if expr then stmt else stmt E 1 if expr then stmt else stmt E 1 if expr then stmt S 2 E 2 S 1 S 2 E 2 S 1 5/24/2004 Formal Diller 5.7 Iki farkli parse tree 5/24/2004 Formal Diller 5.8
3 Left Recursion stmt if expr then stmt if expr then stmt else stmt other Asagidaki verilen ozellige sahip grammar e left recursive denir. A + A turetimine imkan veren bir nonterminale sahip. stmt matched_stmt unmatched_stmt matched_stmt if expr then matched_stmt else matched_stmt other unmatched_stmt if expr then stmt if expr then matched_stmt else unmatched_stmt A A left recursion elimination A A A A 5/24/2004 Formal Diller 5.9 5/24/2004 Formal Diller 5.10 A A 1 A 2 A m 1 2 n Immediate left recursion elimination E E + T T T T * F F F (E ) id A 1 A 2 A n A A 1 A 2 A m A 5/24/2004 Formal Diller 5.11 E TE E +TE T FT T * FT F ( E ) id 5/24/2004 Formal Diller 5.12
4 S Aa b A Ac Sd S Aa Sda Left recursive, immediately left recursive degil Left recursion elimination Eger grammar de cycle yoksa (A + A yok) veya -production yok Input: Grammar G (no cycles veya -production ) Output: Esdeger grammar (no left recursion) 5/24/2004 Formal Diller /24/2004 Formal Diller Nonterminalleri A 1, A 2,, A n olarak duzenle. 2. for i:=1 to n do begin for j:= 1 to i-1 do begin A i A j seklindeki her bir production i A j 1 2 k ile yerdegistir. Burada A j 1 2 k original gram mardaki productionlardir. end A i productionlarindaki immediate left recursioni elimine et. end 5/24/2004 Formal Diller 5.15 S Aa b A Ac Sd Non-terminal sirasi: S, A S-productionlarda no immediate left recursion i=2 icin A Sd production i A Aad bd ile yer yer degistirilir. S Aa b A Ac Aad bd S Aa b A bda A A ca ada 5/24/2004 Formal Diller 5.16
5 Left factoring Left Factoring Predictive Parser larda kullanilir. stmt if expr then stmt else stmt if expr then stmt A 1 2 Left factoring A A A 1 2 5/24/2004 Formal Diller 5.17 Left Factoring Input. Grammar G Output. An equivalent left-factored grammar Method. Her bir nonterminal A icin iki veya daha cok alternatifindeki en uzun prefix yi bul. Eger dan farkli ise A ( Burada ile baslamayan tum alternatifleri gosterir) yi asagidaki turetimlerle yer degistir. A A A 1 2 n 5/24/2004 Formal Diller 5.18 Top-down Parsing stmt if expr then stmt else stmt if expr then stmt a expr b Giris stringi icin bir leftmost derivation bulma anlamina gelir Ayni zamanda root dan baslayarak treenin node larini preorder sirada bulmak suretiyle bir parse tree uretmek anlamina gelir stmt if expr then stmt stmt a stmt else stmt expr b 5/24/2004 Formal Diller /24/2004 Formal Diller 5.20
6 Recursive descend parsing Top-down parsing in genel halidir. Backtracking e ihtiyac duyulabilir S S cad A ab a Input string w=cad c S A d backtracking c c a S A S A d b d 5/24/2004 Formal Diller /24/2004 Formal Diller 5.22 a Predictive Parser Predictive Parser Predictive parser with no backtracking Eliminating left recursion Left factoring Verilen her bir input sembol icin yalniz bir alternatif turetim vardir. Stack X Y Input a + b Predictive Parsing Program Output Z stmt if expr then stmt else stmt while expr do stmt begin stmt_list end Parsing Table M 5/24/2004 Formal Diller /24/2004 Formal Diller 5.24
7 4 kisimdan olusur Input buffer: Parserin inputunu icerir. Buffer in sonuna input string in sonunu gosteren eklenir. Stack: Grammar sembollerini icerir. Stack in dibinde (stackin dibi oldugunu gosteren) sembolu bulunur. Baslangicta stack de sadece vardir. Parsing Table: Iki boyutlu bir dizidir. Dizininin herbir elemani M[A,a] (A nonterminal, a ise terminal veya dir) seklindedir. Output: Eger input verilen grammar tarafindan taninirsa cikis, girisin leftmost derivation i, aksi halde error. 5/24/2004 Formal Diller 5.25 Baslangicta S stackte ve w giris bufferinda. ip w nin ilk sembolune isaret ediyor repeat X stack in ustundeki sembol ve ip a yi isaret ediyor; if X bir terminal veya then if X = a then pop X from the stack ve ip i sonraki sembolu gosterecek sekilde ilerlet else error( ) else /* X nonterminal */ if M[X,a] = X Y 1 Y 2 Y k then begin pop X from the stack; push Y k,y k-1,, Y 1 onto stack ( Y 1 en ustte olacak sekilde); output the production X Y 1 Y 2 Y k end else error( ) until X = /* stack is empty */ 5/24/2004 Formal Diller 5.26 Predictive Parsing Program E TE E +TE T FT T *FT F ( E ) id Input: Giris stringi w ve grammar G icin parsing table M Output: Eger w L(G) nin bir elemani ise, cikis w nin bir leftmost derivation i, aksi halde error. Nonter minal E E T T F id E TE T FT F id + E +TE T Input Symbol * ( E TE T FT T *FT F (E) ) E T E T 5/24/2004 Formal Diller /24/2004 Formal Diller 5.28
8 Stack E E T E T F E T id E T E E T + E T E T F E T id E T E T F * E T F E T id E T E Input id + id * id id + id * id id + id * id id + id * id + id * id + id * id + id * id id * id id * id id * id * id * id id id Output E T E T F T F id T E + T E T F T F id T * FT F id T E FIRST and FOLLOW Predictive Parser in Table ini doldurmak icin kullanilir FIRST Eger grammar sembollerinden olusan bir string ise FIRST( ) dan tureyen stringlerin basindaki nonterminallerin kumesi Eger * ise, FIRST( ) yi icerir. FOLLOW Nonterminal A icin FOLLOW(A) sentential formdaki A nin hemen saginda bulunan terminallerin kumesi Eger S * A a ise, FOLLOW(A) a yi icerir 5/24/2004 Formal Diller /24/2004 Formal Diller 5.30 Algorithm for FIRST Algorithm for FOLLOW 1. Eger X bir terminal ise, FIRST(X) = {X} 2. Eger X ise, yi FIRST(X) e ekle 3. Eger X Y 1 Y 2 Y k ise, ve bazi i icin FIRST(Y i ) a yi iceriyor ve FIRST(Y 1 ), FIRST(Y 2 ),, FIRST(Y i-1 ) yi iceriyorsa, a yi FIRST(X) e ekle. Nonterminal A icin FOLLOW(A) asagidaki gibi hesaplanir. 1. S start sembolu ise FOLLOW(S) yi icerir. 2. Eger A B ise, haric FIRST( ) deki her seyi FOLLOW(B) icerir 3. Eger A B, veya A B ve FIRST( ) yi icerirse FOLLOW(A) daki her seyi FOLLOW(B) icerir 5/24/2004 Formal Diller /24/2004 Formal Diller 5.32
9 E TE E +TE T FT T *FT F ( E ) id Algorithm for Predictive Parsing Table FIRST(E) = FIRST(T) = FIRST(F) = { (,id } FIRST(E ) = { +, } FIRST(T ) ={ *, } FOLLOW(E) = FOLLOW(E ) = { ), } FOLLOW(T) = FOLLOW(T ) = { +, ), } FOLLOW(F) = { +, *, ), } Input: Grammar G Output: Parsing table M 1. Her bir kural A icin 2. ve 3. adimlari yap 2. First( ) daki her bir nonterminal a icin M[A,a] A dir 3. Eger FIRST( ) da ise, FOLLOW(A) daki her bir nonterminal b icin M[A,b] A dir 4. M nin geri kalan entry lerini error olarak isaretle 5/24/2004 Formal Diller /24/2004 Formal Diller 5.34 Nonter minal E E T T F E TE E +TE T FT T *FT F ( E ) id id E TE T FT F id FIRST(E) = FIRST(T) = FIRST(F) = { (,id } FIRST(E ) = { +, } FIRST(T ) ={ *, } FOLLOW(E) = FOLLOW(E ) = { ), } FOLLOW(T) = FOLLOW(T ) = { +, ), } FOLLOW(F) = { +, *, ), } + E +TE T Input Symbol * T *FT ( E TE T FT F (E) ) E T E T S ie tss a S es E b Nonter minal S S E a S a b E b Input Symbol e S es S i S ie tss t S 5/24/2004 Formal Diller 5.35 FOLLOW(S ) = {e, } 5/24/2004 Formal Diller 5.36
10 LL(1) Grammars LL(1): ilk L inputun soldan saga dogru tarandigini ifade eder. Ikinci L leftmost turetiminin uygulandigini ve (1) lookahead symbol sayisini gosterir. LL(1) Grammars Ambiguous veya left recursive grammar ler LL(1) olamaz Grammar G LL(1) dir ancak ve ancak eger A iki farkli turetim ise asagidaki kosullari saglamalidir. ve ayni nonterminal a ile baslayan stringler turetmemeli. En fazla ve dan biri (empty string) turetebilir. Eger * ise, FOLLOW(A) bulunan herhangi bir nonterminal ile baslayan bir string turetmemeli. 5/24/2004 Formal Diller /24/2004 Formal Diller 5.38 BOTTOM-UP PARSING Shift-reduce parsing bottom-up parsing in genel bir seklidir. Operator-precedence shift-reduce parsing in ozel bir hali Parse tree leaves (yapraklar) dan baslanip root (koke) dogru design edilir. Giris stringi w grammar in baslangic sembolu S ye reduce (indirgenir) S aabe A Abc b B d abbcde aabcde aade aabe S w = abbcde S rm aabe rm aade rm aabcde rm abbcde 5/24/2004 Formal Diller /24/2004 Formal Diller 5.40
11 Handles Bir string in handle i asagidaki kosulu saglayan substring e denir. Bir production in sag tarafi ile uyusmasi ve o production in solundaki nonterminale indirgenmesi rightmost derivation in tersinin bir adimini gostermesi. (Informal) Bir baska deyimle S * rm Aw rm w ve A ise, A w stringinde dan sonraki pozisyonda bir handle dir. (Formal) S aabe A Abc b B d w = abbcde S rm aabe rm aade rm aabcde rm abbcde abbcde bir right-sentential form dur ve handle i 2. pozisyondaki A b dir. 5/24/2004 Formal Diller /24/2004 Formal Diller 5.42 (1) E E + E (2) E E * E (3) E ( E ) (4) E id E rm E + E rm E + E * E rm E + E * id 3 rm E + id 2 * id 3 rm id 1 + id 2 * id 3 id 3, E + E * id 3 un bir handle dir E rm E * E rm E * id 3 rm E + E * id 3 rm E + id 2 * id 3 rm id 1 + id 2 * id 3 E + E, E + E * id 3 un bir handle dir 5/24/2004 Formal Diller 5.43 (1) E E + E (2) E E * E (3) E ( E ) (4) E id Right sentential form id 1 + id 2 * id 3 E + id 2 *id 3 id 1 + id 2 * id 3 E + E * id 3 E + E * E E + E E handle id 1 id 2 id 3 E * E E + E Reducingproduction E id E id E id E E * E E E + E 5/24/2004 Formal Diller 5.44
12 Shift Reduce Parsing in Stack le Gerceklestirilmesi (1) E E + E (2) E E * E (3) E ( E ) (4) E id id 1 + id 2 * id 3 E rm E + E rm E + E * E rm E + E * id 3 rm E + id 2 * id 3 rm id 1 + id 2 * id 3 Stack grammar sembollerini tutmak icin kullanir. Input buffer ise giris stringi w yu tutmak icin kullanilir. stack in dibini isaretlemek ve giris stringinin sonunu gostermek icin kullanilir. baslangic: stack input w bitis: stack input 5/24/2004 Formal Diller 5.45 stack input action (1) id 1 + id 2 * id 3 shift (2) id 1 + id 2 * id 3 Reduce by E id (3) E + id 2 * id 3 shift (4) E + id 2 * id 3 shift (5) E + id 2 * id 3 reduce by E id (6) E + E * id 3 shift (7) E + E * id 3 shift (8) E + E * id 3 reduce by E id (9) E + E * E reduce by E E *E (10) E + E reduce by E E +E (11) E accept 5/24/2004 Formal Diller 5.46 Shift-reduce Actionlari Shift Bir sonraki giris sembolu stack e itilir Reduce Handle in sagi stack in ustunde. Stack de handle nin soluna komsu nonterminal tespit edilir. Daha sonra belirlenen handle sag tarafi ile yer degistirilir. Accept Parsing isleminin basarili oldugu karari verilir Error Syntax error un olduguna karar verilir ve error recovery routine i cagrilip parsing islemi sonlandirilir. Operator-precedence parsing LR grammar ler shift-reduce parsing yontemiyle gerceklestirilen en genis grammar grubudur. Operator-precedence parsing Elle shift-reduce parsing yontemiyle kolayca gerceklestirilebilirler Genellilkle expression lar icin gerceklestirilirler Temel ozellikleri Herhangi bir turetimin saginda veya yanyana iki nonterminal bulunmaz 5/24/2004 Formal Diller /24/2004 Formal Diller 5.48
13 E EAE (E ) -E id A + - * / m Operator grammar degil Nonterminaller arasinda uc disjoint precedence relations tanimlanir Bu relationlar handle larin seciminde kullanilirlar E E +E E E E *E E /E E me (E ) -E id relation a b a =. b a b anlami a nin onceligi b den sonra gelir a ile b ayni oncelige sahip a, b den daha onceliklidir 5/24/2004 Formal Diller /24/2004 Formal Diller 5.50 Bu relation lar aritmetik relation lara ( <, >, =) benziyor gibi gozukebilir. Ama gercekte anlmalari oldukca farklidir. Ayni dil icin a b ve a b olabilir a b, a b, a =. b den hic biri olmayabilir Iki nonterminal arasinda hangi iliskinin olmasi gerektigine karar vermek icin baslica iki yontem vardir Operatorlerin associativity ve precedence (oncelik) durumlari Eger *, + dan oncelikli ise + * ve * + Ambiguity nin cozumlenmesi 5/24/2004 Formal Diller 5.51 id + * id + * id + id * id id + id * id E + id * id E + E * id E + E * E + * + 5/24/2004 Formal Diller 5.52
14 Operator-precedence Algorithm Associativity ve Operator Precedence Kurallari Input: input string w ve precedence relation larin tablosu Output: Eger w grammar tarafindan kabul edilirse parse tree, aksi durumda hata messaji. Baslangicta stack icerir ve input buffer da w var. ip yi w nin ilk sembolunu gosterecek sekilde set et repeat forever if stack in usunde ve ip a isaret ediyorsa then return else begin a stack in ustundeki terminali ve b ip tarafindan isaret edilen sembolu gostersin if a b veya a =. b then begin /* shift */ b yi stack e it (push); ip yi bir sonraki sembolu gosterecek sekilde duzenle end else if a >. b then /* reduce */ repeat stack te pop islemi yap until stack in ustundeki nonterminal en son stack den cekilen nonterminal else error() end 5/24/2004 Formal Diller Eger 1, 2 den daha oncelikli ise 1 2 ve 2 1 Ornek: *, + dan daha oncelikli ise, * + ve + * ( E+ E * E + E ) 2. Eger 1, 2 esit oncelikli ise ( 1 ve 2 ayni operator olabilir ), 1 2 ve 2 >. 1 (eger 1, 2 left-associative ise), 1 2 ve 2 1 (eger 1, 2 right-associative ise). ( E E + E ) Ornek: + ve left associative ise + +, + -, - -, - + dir. Eger m right associative ise m m dir. 3. Her bir operator icin, id, id, (, (, ), ),, ve dir. Ayni zamanda, ( =. ) ( id ( ( id ) ( 5/24/2004 id id ) ) ) Formal Diller * / m id ( ) E E +E E E E *E E /E E me (E ) -E id 1. m en yuksek oncelige sahip ve right-associative 2. * ve / sonraki en yuksek oncelige sahip ve left-associative 3. + ve en dusuk oncelige sahip ve left associative + - * / m 5/24/2004 Formal Diller 5.55 id ( ) =. Stack input (1) id * ( id m id ) id / id (2) id * ( id m id ) id / id (3) * ( id m id ) id / id (4) * ( id m id ) id / id (5) * ( idm id ) id / id (6) * ( id m id ) id / id (7) * ( m id ) id / id (8) * ( m id ) id / id (9) * ( m id ) id / id (10) * ( m ) id / id (11) * ( ) id / id (12) * ( ) id/ id (13) * id/ id (14) id/ id (15) - id / id (16) - id / id (17) - / id (18) - / id (19) - / id (20) - / (21) - (22) 5/24/2004 Formal Diller 5.56
15 Precedence Functions Operator-precedence parser kullanan compiler lar precedence relationlarin tablosunu tutmalarina gerek yoktur. Cogu kez terminal sembolerinden integerlara tanimli f ve g precedence fonksiyonlari yukarida belirtilen tabloyu kodlanabilir. f ve g yi asagidaki ozellikleri saglayacak sekilde secebiliriz f(a) < g(b) eger a b ise f(a) = g(b) eger a =. b ise f(a) > g(b) eger a b ise a ve b terminalleri arasindaki precedence iliskisi f(a) ve f(b) nin kiyaslanmasiyla elde edilir. 5/24/2004 Formal Diller * / m id ( ) + - * / m id ( =. ) + - * / m ( ) id f g * id dolayisiyle f(*) =4 < g(id) = 5 5/24/2004 Formal Diller 5.58 Precedence fonksiyonlarin elde edilmesi Input: Operator precedence matrix Output: input matrixi temsil eden precedence fonksiyonlari veya precedence fonksiyonlarin bulunamayacaginin ifadesi id + * id + * 1. Her bir terminal a veya icin f a ve g a olmak uzere iki sembol olustur. 2. Eger a =. b ise f a ve f b ayni grupta olmak sartiyla sembolleri maximum sayida gruba ayir. 3. Node lari 2. adimda bulunan gruplar olan bir directed graph olustur. a ve b icin eger a <. b ise g b nin bulundugu gruptan f a nin bulunduga gruba bir edge var. Eger a >. b ise f a nin bulundugu gruptan g b nin bulundugu gruba bir edge var. 4. Eger elde edilen graph bir cycle olusturuyorsa, precedence fonk siyonlari bulunamaz (yoktur). Aksi takdirde f(a) grup f a dan baslayan en uzun path (longest path) in uzunlugudur, g(a) grup g a dan baslayan en uzun path in uzunlugudur. 5/24/2004 Formal Diller 5.59 g id f id f * g * g + f + f g + * id f g Precedence fonksiyonlari Precedence fonksiyonlarini gosteren graph 5/24/2004 Formal Diller 5.60
16 LR PARSERS Efficient bottom-up parsing technique En genel hali LR(k): L: left to right scanning of the input, R: rightmost derivation in reverse, k: parsing kararinda lookahead icin gerekli sembol sayisi LR parser lar context-free grammar lerle ifade edilebilen hemen hemen tum diller icin kullanilabilirler LR parsing yontemi bilinen en genel nonbactracking shift-reduce parsing methodudur LR parser larla parse edilebilen dillein kumesi predictive parser larla parse edilebilen diller kumesinin bir supersetidir. LR parser larin elle gerceklestirilmesi zordur LR parser generators Yacc (yet another compiler compiler) : verilen context free grammar a gore otomatik olarak LR parser uretir 5/24/2004 Formal Diller 5.61 LR Parsers SLR (simple LR) En kolay implemet edilebilen LR dir En az guclu Canonical LR En guclu olani En zor implement (gerceklestirilebilen) LR dir LALR (lookahead LR) Gucu ve implementation zorlugu SLR ile Canoniical LR arasinda Cogu programlama dilleri kucuk degisikliklerle LALR parserlariyle parse edilebilirler 5/24/2004 Formal Diller 5.62 LR Parsing LR Parsing stack s m X m s m-1 X m-1 s 0 a 1 a 2 a i a n LR Parsing Program action goto Input LR parsing 5 kisimdan olusur Input buffer Output Stack s 0 X 1 s 1 X 2 s 2 X m s m, s m stackin en ustunde. X i ler grammar sembol (terminal veya nonterminal), s i ler ise stateleri gosterir Stack en ustundeki state ve input symbol kullanilarak parsing table indekslenir ve indeklenen tablonun elemanina gore shift/reduce parsing karari verilir Driver program Otomatik olarak uretilir (verilen context free grammar gore) Parsing table 5/24/2004 Formal Diller /24/2004 Formal Diller 5.64
17 Parsing table Iki bolumden olusur Parsing action fonksiyonu Goto fonksiyonu action[s m,a i ] Shift s, oyleki s bir state dir Reduce (A ) Accept Error goto State i ve grammar sembolu giris olarak alir ve buna gore sonraki state i verir LR Parsing Algorithm Input: input string w ve grammar icin LR parsing table Output: Eger w L(G) nin elemani ise w icin bottom-up parse tree, aksi durumda error 5/24/2004 Formal Diller /24/2004 Formal Diller 5.66 LR Parsing Algorithm ip yi w nin ilk sembolu isaret edecek sekilde duzenle repeat forever begin s stack in en ustundeki state ve a ip tarafindan isaret edilen sembol olsun if action[s,a] = shift s then begin once a yi sonra s ni stacke push et; ip yi sonraki sembole isaret edilecek sekilde ilerlet end else if action[s,a] = reduce A then begin 2* sembolu stack ten pop et s stack in ustundeki state olsun once A yi sonra goto[s,a] yi stack e push et output production A end else if action[s,a] = accept then return else error() end 5/24/2004 Formal Diller 5.67 action goto (1) E E + T State id + * ( ) E T F (2) E T 0 s5 s s6 acc (3) T T * F 2 r2 s7 r2 r2 (4) T F 3 r4 r4 r4 r4 (5) F (E) 4 s5 s (6) F id 5 r6 r6 r6 r6 6 s5 s s5 s s6 s11 9 r1 s7 r1 r1 10 r3 r3 r3 r3 11 r5 r5 r5 r5 5/24/2004 Formal Diller 5.68
18 (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) Stack 0 0 id 5 0 F 3 0 T 2 0 T 2 * 7 0 T 2 * 7 id 5 0 T 2 * 7 F 10 0 T 2 0 E 1 0 E E id 5 0 E F 3 0 E T 9 0 E 1 Input id * id + id * id + id * id + id * id + id id + id + id + id + id + id id Action shift reduce F id reduce T F shift shift reduce F id reduce T T * F reduce E T shift shift reduce F id Reduce T F E E + T accept LL Parsers versus LR Parsers LL ile LR arasinda onemli bir fark var Bir grammar in LR(k) olabilmesi icin, Bir production in sag tarafininin turetimde kullanildigini anlayabilmemiz gerekir (bu sag taraftan k lookahead sembolu kullanilarak turetilebilecek tum stringlerin gorulmesi ) Bir grammar in LL(k) olabilmesi icin Bir production in sag tarafinin turetimde kullanildigini anlayabilmemiz gerekli (bu production in sag tarafinin turettigi stringin sadece ilk k sembolunun gorulmesiyle belirlenmesi) LR grammar lar LL grammar lerden daha fazla dil tanimlarlar 5/24/2004 Formal Diller /24/2004 Formal Diller 5.70 SLR Parsing Tables LR(0) item: Grammar G nin LR(0) item i (item) G nin production larindan birinin sag tarafinin herhangi bir pozisyonuna dot (.) eklenmis hali A XYZ bir production ise: A.XYZ, A X.YZ, A XY.Z ve A XYZ. nin her biri G nin bir item idir. A yalnizca A. Production ini uretir. Item bir cift integerla represent edilir Production in numarasi Dot (.) nin production daki pozisyonu Augmented Grammar Eger G start sembolu S olan bir grammar ise, G G nin augmented grammar idir ve G nin start sembolu S olmak uzere production lari S S G nin tum productionlari 5/24/2004 Formal Diller /24/2004 Formal Diller 5.72
19 Closure Operation Eger I, grammar G nin bir item i ise, closure(i) asagidaki iki kuralla elde edilir I daki her item closure(i) ya eklenir Eger A.B closure(i) nin elemani ve B ise B. closure(i) da degilse buna eklenir. Bu islem closure(i) ya yeni bir item eklenemeyene kadar tekrarlanir. E E + T T T T * F F F (E) id E E E E + T T T T * F F F (E) id Augmented grammar I= {E E} ise Closure(I) = { E.E, E.E+T, E.T, T.T*F, T.F F.(E), F.id} 5/24/2004 Formal Diller /24/2004 Formal Diller 5.74 Goto Operation function closure(i) begin J:= I; repeat for J deki her bir item A.B ve her bir production B icin, eger B. J de yoksa, B. yi J ye ekle until yeni bir item J ye eklenemeyene kadar return J end goto(i,x) (I item ler kumesi ve X grammar sembol) closure{a X. } oyleki A.X I nin bir elemanidir E E E E + T T T T * F F F (E) id I={E E., E E.+T} ise goto(i,+)= {E E+.T, T.T*F, T.F, F.(E), F.id} 5/24/2004 Formal Diller /24/2004 Formal Diller 5.76
20 Sets-of-items larin bulunmasi E E E E + T T T T * F F F (E) id procedure items(g ) begin C:={closure({S S})}; repeat for C deki her bir item kumesi I ve grammar sembol X icin oyleki goto(i,x) bos olmayip C de degilse do goto(i,x) i C ye ekle until C ye yeni itemlar kumesi eklenemeyene kadar end I 0 : E.E E.E+T E.T T.T*F T.F F.(E) F.id I 1 : E E. E E.+T I 2 : E T. T T.* F I 3 : T F. I 4 : F (.E) E.E+T E.T T.T*F T.F F.(E) F.id I 5 : F id. I 6 : I 7 : I 8 : E E+.T T.T*F T.F F.(E) F.id T T*.F F.(E) F.id F (E.) E E.* T I 9 : E E+T. T T.* F I 10 :T T*F. I 11 :F (E). Canonical LR(0) items setleri 5/24/2004 Formal Diller /24/2004 Formal Diller 5.78 SLR Parsing Table nin Elde Edilmesi E + T I * 0 I I I I Input: Augmented grammar G id F ( Output: SLR parsing table functions actions, goto I 5 I I 4 3 T I * F 1. LR(0) item lerinin setlerinin kolleksiyonu C={I 2 I I 0, I 1,, I n } yi bul State i I i den elde edilir id ( a) Eger A.a I i nin elemani ve goto(i i,a) =I j ise action[i,a]=shift j F burada a terminaldir. I 3 I I 5 4 b) Eger A. I i nin elemani ise action[i,a] = reduce A dir (FOLLOW(A) daki her bir terminal a icin, A S den farkli) ( c) Eger S S. I i nin elemani ise action[i,] = accept ( E ) 3. State i icin goto transitionlari tum nonterminaller A icin : I 4 I 8 I 11 Eger goto(i i,a) = I j ise goto[i,a] =j dir T Ve 3. Kuralla tanimlanmayan tablonun tum elemanlari error olarak id I 2 + I 6 isaretlenir id F I 5. Parser in baslangic state i S.S nin closure undan elde edilen state dir. 5 5/24/2004 I Formal Diller /24/2004 Formal Diller
21 (1) E E + T (2) E T (3) T T * F (4) T F (5) F (E) (6) F id State id s5 s5 s5 s5 + s6 r2 r4 r6 s6 r1 r3 * s7 r4 r6 s7 r3 action 11 r5 r5 r5 r5 5/24/2004 Formal Diller 5.81 ( s4 s4 s4 s4 ) r2 r4 r6 s11 r1 r3 acc r2 r4 r6 r1 r3 E 1 8 goto T F
Syntax Analysis. 4/5/2004 Formal Diller 4.1
Syntax Analysis Her programlama dilinin yazilan bir programin syntax olarak dogru olup olmadigini belirleyen kurallari vardir. Programlama dillerinin syntactic yapisi Contex-Free Grammer / BNF (Backus-Naur
DetaylıBAĞLAMDAN BAĞIMSIZ VE BAĞLAMDAN BAĞIMSIZ OLMAYAN DİLLER (CONTEXT-FREE AND NON-CONTEXT-FREE LANGUAGES)
BAĞLAMDAN BAĞIMSIZ VE BAĞLAMDAN BAĞIMSIZ OLMAYAN DİLLER (CONTEXT-FREE AND NON-CONTEXT-FREE LANGUAGES) Context-free dillerin üretilmesi için context-free gramer ler kullanılmaktadır. Context-free dillerin
DetaylıFormal Diller Ve Otomat Teorisi
Formal Diller Ve Otomat Teorisi Ismail Kadayif Canakkale Onsekiz Mart Universitesi Bilgisayar Muhendisligi 4/5/2004 Formal Diller 1.1 Strings ve Languages (Diller) alphabet (character set): Sonlu sayida
Detaylı! " # $ % & '( ) *' ' +, -. /.,
!"#$ %& '()*' ' +,-./.,-. 0 12.30.420 ,-./.,-,-.5' $-.5 6# #",-.5 2(3 # #",-.5 6') 7 2(3 87" $-.5.$-.5) 7 # * ",222 2 #5# * #)7 #7",-./.,- Theorem: Context-free diller union, concatenation ve Kleene star
DetaylıContext-Free Grammars and Languages
Context-Free Grammars and Languages We have seen that many languages cannot be regular. Thus we need to consider larger classes of langs, called Context- Free Languages (CFL). These langs have a natural,
Detaylı! " # $ % & '( ) *' ' +, -. /) /) 0 # /) %, %, 1 2
!"#$ %& '()*' ' +,-./) /) 0 #/) %,%, 12 $$(/3#/ " '$$(/34" '$$(//44 / 4 /4/ 4# ##4" 5-6/'$##/" 7#! a(a * b * )b regular expression ile önce bir a üretilir. Ardından iki durumdan birisine göre devam edilir.
DetaylıBAĞLAMDAN BAĞIMSIZ (CONTEXT-FREE) GRAMERLER (CFG) VE DİLLER (CFL)
BAĞLAMDAN BAĞIMSIZ (CONTEXT-FREE) GRAMERLER (CFG) VE DİLLER (CFL) Dil tanıyıcı cihaz bir dile ait geçerli string leri kabul eder. Dil üreteci cihaz bir dile ait string leri oluşturur. Dil üreteci cihazlar
DetaylıSemantik (Semantics): ifadelerin, deyimlerin, ve program birimlerinin anlamı Sentaks ve semantik bir dilin tanımı sağlar
PDP 3 1 Sentaks (Syntax): ifadelerin (statements), deyimlerin (expressions), ve program birimlerinin biçimi veya yapısı Semantik (Semantics): ifadelerin, deyimlerin, ve program birimlerinin anlamı Sentaks
DetaylıTokenlarin Taninmasi
Tokenlarin Taninmasi stmt t if expr then stmt if expr then stmt else stmt expr t term relop term term term t id num if, then, else, relop, id, ve num terminal (token), stmt, expr, term nonterminal olarak
DetaylıYZM Biçimsel Diller ve Otomata Teorisi. Ders#06
YZM 3229- Biçimsel Diller ve Otomata Teorisi Ders#06 İçerikten Bağımsız Diller İçerikten Bağımsız Diller (Context-Free Languages) Şu ana değin Düzenli Dilleri İfade Etmek için Kullanılabilecek Yapıları
DetaylıBM312 Ders Notları 2014
Kümeler ve Bağıntılar Bir küme nesnelerden oluşur L = {a, b, c, d} a, b, c, d kümenin elemanları veya üyeleridir c L, k L şeklinde ifade edilir. Elemanların sırası ve tekrarı önemli değildir {üzüm, kiraz,
DetaylıStack Islemleri. Postfix ve Infix notasyonlari. Stack ozellikleri
Veri Yapilari Stacks Stacks Queues Lists Stack nedir Stack de tanimli islemler Push Pop Empty Full Inialization Stack in gerceklestirilmesi 10/7/2004 Veri yapilari 3.1 10/7/2004 Veri yapilari 3.2 Stack
DetaylıDilbilgisi ve Diller
Dilbilgisi ve Diller Doç.Dr.Banu Diri 1. Her biçimsel dil belirli bir alfabe üzerinde tanımlanır. 2. Alfabe sonlu sayıda simgelerden oluşan bir kümedir. 3. Alfabedeki simgelerin arka arkaya getirilmesi
DetaylıOtomata Teorisi (BİL 2114)
Otomata Teorisi (BİL 2114) Fırat İsmailoğlu Hafta 6: Pumping Lemma İçerikten Bağımsız Diller (1. Bölüm) 1 Hafta 6 Plan 1. Olmayana Ergi Yöntemi 2. Güvercin Yuvası Prensibi 3. Pumping Lemma 4. İçerikten
Detaylı1 $/ " {ww R : w {a, b} * } ## S asa, S bsb S e#(3 * 5 $(6 )# (2 #$,(- (25 #5
!"#$ %& '()*' ' +,./0% 1 $/02 2 3 " {ww R : w {a, b} * } ## #4 S asa, S bsb S e#(3 5 2'5" * 5 $(6 )# (2 #$ 5#77 #" ' #" (25 #5 #" 8)5*# 73'" 5#$#$257" 379()379" :))##2)7 5)32) #5 6*" :5)$#$2#5" ;! Pushdown
DetaylıDERLEYİCİ TASARIMI ÖDEV-2 RAPORU
DERLEYİCİ TASARIMI ÖDEV-2 RAPORU Nadia Erdoğan Mustafa Cantürk (Image generated by unlicensed version of UMLStudio.) Sınıf tanımları: Token: tokenize() fonksiyonu sonucunda gelen stringi Token lara ayrılır.
DetaylıBLM210 HAFTA 2 FORMAL METHODS OF SYNTAX DESCRIPTION (SÖZDİZİM TARİFİNİN BİÇİMSEL YÖNTEMLERİ)
1 BLM210 HAFTA 2 FORMAL METHODS OF SYNTAX DESCRIPTION (SÖZDİZİM TARİFİNİN BİÇİMSEL YÖNTEMLERİ) Programming language implementors must be able to determine how the expressions, statements, and program units
Detaylı+,- #'. L = {a, b, c, d} a, b, c, d kümenin elemanları veya üyeleridir
!"#$ %& '()*' ' #'. L = {a, b, c, d} a, b, c, d kümenin elemanları veya üyeleridir b L, z L / #* ) {red, blue, red} ile {red, blue} aynıdır {3, 1, 9}, {9, 1, 3} ve {3, 9, 1} aynıdır / 0 Bir elemana sahip
DetaylıYZM 2116 Veri Yapıları
YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 4 Stack (Yığın, Yığıt) Veri Yapısı Stack Çalışma
DetaylıBM312 Ders Notları - 3 2014
DETERMİNİSTİK SONLU OTOMATLAR (DETERMINISTIC FINITE AUTOMATA) Bir Sonlu Otomat (FA) sabit ve sonlu kapasitede bir merkezi işlem ünitesine sahiptir. Giriş bilgisini input tape üzerinden string olarak alır.
DetaylıYIĞINLAR YIĞINLAR. Yığın İşlemleri Postfix, Prefix, Infix. G. Ü. Bilgisayar Mühendisliği Bölümü
Yığın İşlemleri Postfix, Prefix, Infix Yrd.Doç.Dr. M. Ali Akcayol 1 Yığındaki elemanlardan sadece en son eklenene erişim yapılır. Yığına ilk eklenen eleman en son elde edilir. FILO (First-in-Last-out)
DetaylıBölüm 4. Sözcüksel ve Sözdizimsel Analiz ISBN
Bölüm 4 Sözcüksel ve Sözdizimsel Analiz ISBN 0-321-49362-1 Bölüm 4 Konular Giriş Sözcüksel Analiz Ayrıştırma Problemi Özyineleme Kökenli Ayrıştırma Aşağıdan Yukarıya Ayrıştırma Resul Kara 2 4.1 Giriş Derleyici
DetaylıFINITE AUTOMATA. Recognizer. Finite Automata (FA)
FINITE AUTOMATA Recognizer Bir dilin recognizeri verilen herhngi ir stringin o dile it olup olmdigini elirleyen progrmdir. Finite Automt (FA) RE lerin recognizerlerinin tsrimind kullniln trnsition diygrm
DetaylıBölüm 4. Sözcüksel ve sözdizimsel analiz ISBN
Bölüm 4 Sözcüksel ve sözdizimsel analiz ISBN 0-321-49362-1 Bölüm 4 Konular giriş Sözcüksel Analiz Ayrıştırma(parsing) problemi Özyinelemeli aşağıya iniş ayrıştırma(recursive-descent Parsing) Aşağıdan-yukarıya
DetaylıBölüm 4. Sözcük ve Sentaks Çözümlemesi ( Analizi) ISBN
Bölüm 4 Sözcük ve Sentaks Çözümlemesi ( Analizi) ISBN 0-321-49362-1 Bölüm 4 Konuları Giriş Sözcük çözümlemesi Ayrıştırma (parsing) problemi Özyineleyerek inen ayrıştırma (Recursive- Descent Parsing) Aşağıdan-yukarı
DetaylıManisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM Biçimsel Diller ve Otomata Teorisi. Final Sınavı Örnek Soruları A0 KİTAPÇIĞI
Sayfa#1(A0 Kitapçığı) Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 3229- Biçimsel Diller ve Otomata Teorisi Final Sınavı Örnek Soruları A0 KİTAPÇIĞI Bahar 2017-2018 Süre: 45 Dakika Adı
DetaylıAğaçlar (Trees) Ağaçlar (Trees)
Giriş Binary Trees (İkilik Ağaçlar) Full Binary Trees Proper Binary Trees Complete Binary Trees Heap Binary Trees Balanced Binary Trees Binary Search Trees (İkilik Arama Ağaçları) Yrd.Doç.Dr. M. Ali Akcayol
DetaylıPASCAL PROGRAMLAMA DİLİ YAPISI
BÖLÜM 3 PASCAL PROGRAMLAMA DİLİ YAPISI 3.1. Giriş Bir Pascal programı en genel anlamda üç ayrı kısımdan oluşmuştur. Bu kısımlar bulunmaları gereken sıraya göre aşağıda verilmiştir. Program Başlığı; Tanımlama
DetaylıManisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM Biçimsel Diller ve Otomata Teorisi. Final Sınavı Soruları A KİTAPÇIĞI
Sayfa#1(A Kitapçığı) Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 3229- Biçimsel Diller ve Otomata Teorisi Final Sınavı Soruları A KİTAPÇIĞI Bahar 2017-2018 Süre: 45 Dakika Adı ve Soyadı
Detaylı! " # $ % & '( ) *' ' +, -. / $ 2 (.- 3( 3 4. (
!"#$ %& '()*' ' +,-. / 0 100$ 2 (.-3( 34.( ,-. '45 45 6#5 6+ 6"#0" '7086 $ $ 89 44" :#! ;{0, 1, 2, 3,..., 9}, L * olarak tanımlı olsun ve sadece 2 ye veya 3 e bölünebilen ve önünde 0 olmayan pozitif sayılara
DetaylıVERİ YAPILARI DERS NOTLARI BÖLÜM 4 STACK (YIĞIN, YIĞIT) Yard. Doç. Dr. Deniz KILINÇ
VERİ YAPILARI DERS NOTLARI BÖLÜM 4 STACK (YIĞIN, YIĞIT) Yard. Doç. Dr. Deniz KILINÇ CELAL BAYAR ÜNİVERSİTESİ, YAZILIM MÜHENDİSLİĞİ 2015-2016 1. Tanım Stack, doğrusal artan bir veri yapısı olup; insert
DetaylıOtomata Teorisi (BİL 2114)
Otomata Teorisi (BİL 2114) Fırat İsmailoğlu Hafta 8: İçerikten Bağımsız Diller (I1I. Bölüm) 1 Hafta 8 Plan l. Pushdown Otomata (PDO) Giriş 2. PDO Geçişler 3. PDO Ornekler 4. PDO nun Formal Gösterimi 5.
Detaylı! " # $ % & '( ) *' ' +, $ $ - $ (. $- $ ( / $ % / $ 0 -( 1( $ (2- -(
!"#$ %& '()*' ' +. $-$( /$% /$0 -(1($(2--( 3 #*'- # 4(5 (6" #7##0 7 $$(5 (6",7 - #, $$ -$(2,-0 # # *'6' (6" 6(50 #" #06 $8# 0 #0 7" 976 0#$ 6 $$" 76 $:;)8) (6",-07#$87 07" $8#< 6 $ < 6))70" ,-$#',-$#'
DetaylıKonular. Hafta 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI
BLG339 PROGRAMLAMA DİLLERİ KAVRAMI Hafta 2 Yrd. Doç. Dr. Melike Şah Direkoğlu Alındığı kaynak: Addison-Wesley s Programming Language Concepts slaytları ve Prof. Dr. Tuğrul Yılmaz ın ders notlarından faydalanarak
DetaylıPython ile Programlamaya Giris
Python ile Programlamaya Giris Ders 4 Veri Tipleri Arasinda Dönüsüm Asagida iki farkli veri tipi, int ve str, gösteriliyor. >>> 3 3 >>> '3' '3' >>> Ilk girilen sayi 3 bir tamsayi iken ikinci girilen sayi
DetaylıSentaks (Syntax): ifadelerin (statements), deyimlerin (expressions), ve program birimlerinin biçimi veya yapısı
Sentaks (Syntax): ifadelerin (statements), deyimlerin (expressions), ve program birimlerinin biçimi veya yapısı PDP 3 Semantik (Semantics): ifadelerin, deyimlerin, ve program birimlerinin anlamı Sentaks
DetaylıKARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR SİSTEMLERİ LABORATUARI BISON AYRIŞTIRICI (PARSER) ÜRETECİ
1 KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR SİSTEMLERİ LABORATUARI BISON AYRIŞTIRICI (PARSER) ÜRETECİ Bison, durumdan bağımsız gramerler (CFG, Context-free grammar) için LALR
DetaylıBLGM BÖLÜM. Problem Çözme Kavramları (Algoritma ve Akış Şemaları)
BLGM108 1. BÖLÜM Problem Çözme Kavramları (Algoritma ve Akış Şemaları) 1 Yazılım Geliştirme Adımları 1. Gereksinimlerin belirlenmesi Problemin ne olduğunu anlama: sorunu çözmek için ne gereklidir, çözüm
Detaylısayıların kümesi N 1 = { 2i-1: i N } ve tüm çift doğal sayıların kümesi N 2 = { 2i: i N } şeklinde gösterilebilecektir. Hiç elemanı olmayan kümeye
KÜME AİLELERİ GİRİŞ Bu bölümde, bir çoğu daha önceden bilinen incelememiz için gerekli olan bilgileri vereceğiz. İlerde konular işlenirken karşımıza çıkacak kavram ve bilgileri bize yetecek kadarı ile
DetaylıOtomata Teorisi (BİL 2114)
Otomata Teorisi (BİL 2114) Hafta 2: Sonlu Otomata (1.Bölüm) bas kapa aç bas 1 Hafta 2 Plan 1. Bir Sonlu Otomata Orneği 2. Sonlu Otomatanin Esasları 3. Sonlu Otomatanın Resmi Gösterimi 4. Nondeterministik
DetaylıFinal Sınavı Soruları Bahar 2018
Sayfa#1 Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 2116 Veri Yapıları Dersi Final Sınavı Soruları Bahar 2018 Süre: 70 Dakika Adı ve Soyadı YANIT ANAHTARI Öğrenci Numarası Grubu İmza
DetaylıDoğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümü. BLGM 318 Ara Sınavı 2012 2013 Đlkbahar Dönemi 13 Nisan 2013. Ad, Soyad Öğrenci No.
Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümü BLGM 318 Ara Sınavı 2012 2013 Đlkbahar Dönemi 13 Nisan 2013 Ad, Soyad Öğrenci No. : : Öğretim Üyesi: Doç. Dr. Zeki BAYRAM Süre: 100 dakika Talimatlar:
DetaylıBölüm 3. Sentaks ve semantik tarifi ISBN 0-321-49362-1
Bölüm 3 Sentaks ve semantik tarifi ISBN 0-321-49362-1 Bölüm 3 Konuları Giriş Genel olarak sentaks tarifi Sentaks tarifinin matematiksel yöntemleri Özellik gramerleri (Attribute Grammars) Programların anlamını
DetaylıBuna göre, eşitliği yazılabilir. sayılara rasyonel sayılar denir ve Q ile gösterilir. , -, 2 2 = 1. sayıdır. 2, 3, 5 birer irrasyonel sayıdır.
TEMEL KAVRAMLAR RAKAM Bir çokluk belirtmek için kullanılan sembollere rakam denir. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 sembolleri birer rakamdır. 2. TAMSAYILAR KÜMESİ Z = {..., -3, -2, -1, 0, 1, 2, 3, 4,... }
DetaylıGraflar bilgi parçaları arasındaki ilişkileri gösterirler.
Graflar (Graphs) Graf gösterimi Uygulama alanları Graf terminolojisi Depth first dolaşma Breadth first dolaşma Topolojik sıralama Yrd.Doç.Dr. M. Ali Akcayol Graflar Graflar bilgi parçaları arasındaki ilişkileri
Detaylı1 RUBY HAKINDA 1 Ruby nin Gelişim Hikayesi 1 Neden Ruby? 1 Neden Bu Kadar Popüler? 2
İÇİNDEKİLER VII İÇİNDEKİLER 1 RUBY HAKINDA 1 Ruby nin Gelişim Hikayesi 1 Neden Ruby? 1 Neden Bu Kadar Popüler? 2 2 RUBY KURULUMU 3 Windows İçin Ruby Kurulumu 3 Ubuntu ve Debian İçin Ruby Kurulumu 6 Mac
DetaylıFORMEL DİLLER VE SOYUT MAKİNALAR. Hafta 2
FORMEL DİLLER VE SOYUT MAKİNALAR Hafta 2 OTOMATA TEORİSİ Otomata teorisi (özdevinim kuramı ya da otomat teorisi), teorik bilgisayar biliminde soyut makineleri (ya da daha uygun bir deyimle soyut 'matematiksel'
DetaylıBilgisayar Programlamaya Giriş I KAREKÖK BULMA Acaba hesap makinesi bir sayının karekökünü nasıl buluyor? başlangıç değeri olmak üzere,
KAREKÖK BULMA Acaba hesap makinesi bir sayının karekökünü nasıl buluyor? başlangıç değeri olmak üzere, dizisi değerine yakınsar. Yani; olur. Burada birinci sorun başlangıç değerinin belirlenmesidir. İkinci
DetaylıAlıştırma 1: Yineleme
Alıştırma 1: Yineleme Alıştırma 2: Yineleme H10->H2 çevrimini yapınız 7 2 1 3 2 1 1 1 2 0 Hafta 3: Yineleme Alıştırmaları(1) E1. (44/174) S değerini yineleme kullanarak hesap ediniz S = 1 + 2 + 3 + n Hafta3:
DetaylıŞekil 6.2 Çizgisel interpolasyon
45 Yukarıdaki şekil düzensiz bir X,Y ilişkisini göstermektedir. bu fonksiyon eğri üzerindeki bir dizi noktayı birleştiren bir seri düzgün çizgi halindeki bölümlerle açıklanabilir. Noktaların sayısı ne
DetaylıGraf Veri Modeli. Düğümler kümesi. Kenarlar kümesi
Graf Veri Modeli Graf, bir olay veya ifadenin düğüm ve çizgiler kullanılarak gösterilme şeklidir. Fizik, Kimya gibi temel bilimlerde ve mühendislik uygulamalarında ve tıp biliminde pek çok problemin çözümü
DetaylıArasınav Soruları Bahar 2018
Sayfa#1 Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 2116 Veri Yapıları Dersi Arasınav Soruları Bahar 2018 Süre: 75 Dakika Adı ve Soyadı YANIT ANAHTARI Öğrenci Numarası Grubu İmza Tarih
DetaylıFatih University- Faculty of Engineering- Electric and Electronic Dept.
Dijital Devre Tasarımı EEE122 A Ref. Morris MANO & Michael D. CILETTI DIGITAL DESIGN 4 th edition Fatih University- Faculty of Engineering- Electric and Electronic Dept. Chapter 3 Boole Fonksiyon Sadeleştirmesi
DetaylıGAP (Grup, Algoritma ve Programlama)
Orta Doğu Teknik Üniversitesi, Ankara Grup/Temsil Kuramından Kesitler Feza Gürsey Enstitüsü, İstanbul 08 Şubat 2010 GAP ne için kullanılır? Yapılacak ispatların doğruluğunu bazı gruplar üzerinde denemek
DetaylıEln 1002 Bilgisayar Programlama II
Eln 1002 Bilgisayar Programlama II Recursive Fonksiyonlar Ne ÖĆreneceĆiz? Recursion nedir? Recursive Fonksiyon tanımı Uygulama ve Örnekler Recursive Çözüm Tasarlama Recursion Nedir? Birçok problem, kendisinin
DetaylıOtomata Teorisi (BİL 2114)
Otomata Teorisi (BİL 2114) Fırat İsmailoğlu Hafta 4: Düzenli İfadeler (I. Bölüm) 1 Hafta 4 Plan 1. Düzenli Diller 2. Düzenli Operatörler 3. Düzenli İfade Örnekleri i. R den L ye ii. L den R ye 4. Online
DetaylıAlgoritma Analizi ve Büyük O Notasyonu. Şadi Evren ŞEKER YouTube: Bilgisayar Kavramları
Algoritma Analizi ve Büyük O Notasyonu Şadi Evren ŞEKER YouTube: Bilgisayar Kavramları Algoritmaların Özellikleri Algoritmalar Input Girdi, bir kümedir, Output ÇıkF, bir kümedir (çözümdür) Definiteness
DetaylıOtomata Teorisi (BIL 2114)
Otomata Teorisi (BIL 2114) Hafta 1: Amaç ve Genel Kavramlar bas kapa aç bas 1 Hafta 1 Plan 1. İletişim ve Ders Bilgisi 2. Otomata Teorisi Genel Bakış 3. Hedeflenen Kazanımlar 4. Matematiksel Nosyonlar
Detaylı2. SİMETRİK GRUPLAR. Tanım 2.1. X boş olmayan bir küme olmak üzere X den X e birebir örten fonksiyona permütasyon denir.
2. SİMETRİK GRUPLAR Tanım 2.1. X boş olmayan bir küme olmak üzere X den X e birebir örten fonksiyona permütasyon denir. Tanım 2.2. X boş olmayan bir küme olsun. S X ile X den X e tüm birebir örten fonksiyonlar
DetaylıHafta 12 Karakter Tutan Diziler
BLM111 Programlama Dilleri I Hafta 12 Karakter Tutan Diziler Yrd. Doç. Dr. Caner ÖZCAN Katar (String) Tanımlama Dizileri ve çok boyutlu dizileri gördük. Katar dediğimiz şey de aslında bir dizidir. Değişken
DetaylıBilgisayar Programlama
Bilgisayar Programlama M Dosya Yapısı Kontrol Yapıları Doç. Dr. İrfan KAYMAZ Matlab Ders Notları M-dosyası Genel tanıtımı : Bir senaryo dosyası (script file) özel bir görevi yerine getirmek için gerekli
DetaylıF(A, N, K) // A dizi; N, K integer if N<0 then return K; if A[N]>K then K = A[N]; return F(A, N-1, K);
2009-2010 BAHAR DÖNEMİ MC 689 ALGORİTMA TASARIMI ve ANALİZİ I. VİZE ÇÖZÜMLERİ 1. a) Böl ve yönet (divide & conquer) tarzındaki algoritmaların genel özelliklerini (çalışma mantıklarını) ve aşamalarını kısaca
DetaylıYZM 2116 Veri Yapıları
YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği BÖLÜM - 11 Bu bölümde, Graph (Çizge - Graf) Terminoloji Çizge Kullanım
DetaylıProperties of Regular Languages. Mart 2006 Ankara Üniversitesi Bilgisayar Mühendisliği - TY 1
Properties of Regular Languages Mart 2006 Ankara Üniversitesi Bilgisayar Mühendisliği - TY 1 Properties of Regular Languages Pumping Lemma. Every regular language satisfies the pumping lemma. If somebody
DetaylıOTOMATİK KONTROL SİSTEMLERİ TEMEL KAVRAMLAR VE TANIMLAR
OTOMATİK KONTROL SİSTEMLERİ TEMEL KAVRAMLAR VE TANIMLAR KONTROL SİSTEMLERİ GİRİŞ Son yıllarda kontrol sistemleri, insanlığın ve uygarlığın gelişme ve ilerlemesinde çok önemli rol oynayan bir bilim dalı
DetaylıFINITE AUTOMATA. Mart 2006 Ankara Üniversitesi Bilgisayar Mühendisliği 1
FINITE AUTOMATA Mart 2006 Ankara Üniversitesi Bilgisayar Mühendisliği 1 Protocol for e-commerce using e-money Allowed events: P The customer can pay the store (=send the money- File to the store) C The
DetaylıÇizgeler (Graphs) Doç. Dr. Aybars UĞUR
Çizgeler (Graphs) ve Uygulamaları Doç. Dr. Aybars UĞUR Giriş Şekil 12.1 : Çizge (Graph) Çizge (Graph) : Köşe (vertex) adı verilen düğümlerden ve kenar (edge) adı verilip köşeleri birbirine bağlayan bağlantılardan
DetaylıArasınav Örnek Soruları Bahar 2018
Sayfa#1 Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 2116 Veri Yapıları Dersi Arasınav Örnek Soruları Bahar 2018 Süre: 75 Dakika Adı ve Soyadı YANIT ANAHTARI Öğrenci Numarası Grubu İmza
DetaylıÖğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri
Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II Değişken Tanımlama Ve Akış Kontrol Deyimleri Değişken Nedir? Değişkenler, programın veya kodların icra süresince belirli bir değer tutan ve istenilirse bu değer
DetaylıBBM Discrete Structures: Final Exam Date: , Time: 15:00-17:00
BBM 205 - Discrete Structures: Final Exam Date: 12.1.2017, Time: 15:00-17:00 Ad Soyad / Name: Ögrenci No /Student ID: Question: 1 2 3 4 5 6 7 8 9 10 11 Total Points: 6 16 8 8 10 9 6 8 14 5 10 100 Score:
DetaylıKullanıcı Dökümanı. Flash B2B. Versiyon 0.1
Kullanıcı Dökümanı Flash B2B Versiyon 0.1 12 Kasım 2004 Geçmiş Değişiklikler İsim Tarih Değişiklik Nedeni Versiyon İçindekiler GEÇMİŞ DEĞİŞİKLİKLER... 2 1. KURULUM... 4 2. KULLANIM... 5 2.1. MAP OLUŞTURMA...
DetaylıSelection Sort Insertion Sort
Ozet Selection Sort Selection Sort Insertion Sort Linear Search.. Growth Rates. Implementation. Once dizinin en buyuk element ini bul ve bunu en son pozisyondaki element le degistir, daha sonra en buyuk
DetaylıBil 2114 Otomata Teorisi Çalışma Soruları ve Cevapları III (Hafta 7,8,9)
Bil 2114 Otomata Teorisi Çalışma Soruları ve Cevapları III (Hafta 7,8,9) 1. Formal olarak G = ({S}, {a, b}, R, S) ve R türetim kuralları olarak verilen grammerinin türettği dili bulunuz. S asa S bsb Cevap:
DetaylıBIL222 Veri Yapıları ve Algoritmalar
BIL222 Veri Yapıları ve Algoritmalar 1. ĠKĠLĠ AĞAÇLAR (BIARY TREES) Bütün düğümlerinin derecesi en fazla iki olan ağaca ikili ağaç denir. Yani bir düğüme en fazla iki tane düğüm bağlanabilir ( çocuk sayısı
DetaylıYAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta
YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ 3. Hafta YAPILAR Farklı veri tipindeki bilgilerin bir araya gelerek oluşturdukları topluluklara yapı (structure) denir. Yani yapılar, birbiriyle ilişkili değişkenlerin
DetaylıWeek 9: Trees 1. TREE KAVRAMI 3. İKİLİ AĞAÇ DİZİLİMİ 4. İKİLİ ARAMA AĞACI 2. İKİLİ AĞAÇ VE SUNUMU > =
Week 9: Trees 1. TREE KAVRAMI 2. İKİLİ AĞAÇ VE SUNUMU 3. İKİLİ AĞAÇ DİZİLİMİ 4. İKİLİ ARAMA AĞACI < 6 2 > = 1 4 8 9 1. TREES KAVRAMI Bir ağaç bir veya daha fazla düğümün (T) bir kümesidir : Spesifik olarak
DetaylıFatih University- Faculty of Engineering- Electric and Electronic Dept.
Dijital Devre Tasarımı EEE122 A Ref. Morris MANO & Michael D. CILETTI DIGITAL DESIGN 4 th edition Fatih University- Faculty of Engineering- Electric and Electronic Dept. 2. BÖLÜM Boole Cebri ve Mantık
DetaylıVERİ YAPILARI. GRAPH LAR Düzce Üniversitesi Teknoloji Fakültesi ÖĞR.GÖR.GÜNAY TEMÜR 1
VERİ YAPILARI GRAPH LAR Düzce Üniversitesi Teknoloji Fakültesi ÖĞR.GÖR.GÜNAY TEMÜR 1 GRAPH (ÇİZGE - GRAF) Terminoloji Çizge Kullanım Alanları Çizge Gösterimi Komşuluk Matrisi Komşuluk Listesi Çizge Üzerinde
Detaylı1 JAVASCRIPT NEDİR? 1
İÇİNDEKİLER IX İÇİNDEKİLER 1 JAVASCRIPT NEDİR? 1 2 TEST ORTAMINI TANIMAK (FİREFOX VE FİREBUG) 5 Firefox 6 Firebug 8 CSS Sekmesi 10 DOM Sekmesi 11 Net ve Çerezler Sekmeleri 11 Script Sekmesi 11 Konsol Sekmesi
DetaylıDENEY 3a- Yarım Toplayıcı ve Tam Toplayıcı Devresi
DENEY 3a- Yarım Toplayıcı ve Tam Toplayıcı Devresi DENEYİN AMACI 1. Aritmetik birimdeki yarım ve tam toplayıcıların karakteristiklerini anlamak. GENEL BİLGİLER Toplama devreleri, Yarım Toplayıcı (YT) ve
DetaylıDOĞRUSAL OLMAYAN PROGRAMLAMA -I-
DOĞRUSAL OLMAYAN PROGRAMLAMA -I- Dışbükeylik / İçbükeylik Hazırlayan Doç. Dr. Nil ARAS Anadolu Üniversitesi, Endüstri Mühendisliği Bölümü İST38 Yöneylem Araştırması Dersi 0-0 Öğretim Yılı Doğrusal olmayan
DetaylıALGORİTMA VE PROGRAMLAMA I
ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Koşul Karşılaştırma Operatörleri Mantıksal
Detaylı,$( -./(,$( 0$0$ 1 2 134(,$(
!"#$ %& '()*' ' + -./( 0$0$ 1 2 134( 5(/ 4 2 " $#56L = {a n b n c n : n 0}222 #.(.)", #22(# 7# 2", #6,489: 7", #24$62.. ' # #2(; 7 #", #2, #2.24$;7" $.7 2# < #44 )" -2 # 22)#( #4# 7 #7= 8"- 2 " >"",.'#
DetaylıKARAKTER DİZGİLERİ, BAĞINTILAR, FONKSİYONLAR KESİKLİ MATEMATİKSEL YAPILAR
KARAKTER DİZGİLERİ, BAĞINTILAR, FONKSİYONLAR KESİKLİ MATEMATİKSEL YAPILAR 2012-2013 Karakter Dizgisi Karakter Dizgisi Üzerine İşlemler Altdizgi Tanım 3.1.1: Bir X kümesi üzerinde bir karakter dizgisi (string)
DetaylıVT Sistem Gerçeklemesi. Ders Notları- #8
VT Sistem Gerçeklemesi Remote: Kullanıcıdan gelen JDBC isteklerini karşılar. Planner: SQL ifadesi için işleme planı oluşturur ve karşılık gelen ilşkisel cebir ifadesini oluşturur. Parse: SQL ifadesindeki
DetaylıYZM ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ
YZM 3207- ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ Azalt ve Fethet Algoritmaları Problemi daha küçük bir örneğine çevir: Küçük örneği çöz Çözümü asıl probleme genişlet 3 tipi vardır:
DetaylıTanım 2.1. X boş olmayan bir küme olmak üzere X den X üzerine bire-bir fonksiyona permütasyon denir.
2. SİMETRİK GRUPLAR Tanım 2.1. X boş olmayan bir küme olmak üzere X den X üzerine bire-bir fonksiyona permütasyon denir. Tanım 2.2. boş olmayan bir küme olsun. ile den üzerine bire-bir fonksiyonlar kümesini
DetaylıDerleyici Kuramı (Compiler Theory)
Derleyici Kuramı (Compiler Theory) Yrd. Doç. Dr. Şadi Evren ŞEKER Bu sunum, İstanbul Üniversitesi, Bilgisayar Mühendisliği, BMG dersi kapsamında hazırlanmıştır ve kavramlara genel bir giriş yapmayı hedefler.
DetaylıMatlab - Giriş (İleri Yapı Statiği II. Kısım)
- Giriş (İleri Yapı Statiği II. Kısım) Doç. Dr. Özgür Özçelik Dokuz Eylül Üniversitesi, Müh. Fak., İnşaat Müh. Böl. Matrisler Hakkında Alman amatör matematikçi Albrecht Dürer in (1471-1528) Rönesans Gravürü
DetaylıTanım Bir X kümesi üzerinde bir karakter dizgisi (string) X kümesindeki. boş karakter dizgisi (null string) denir ve l ile gösterilir.
BÖLÜM 3 Karakter Dizgileriil i Tanım 3.1.1 Bir X kümesi üzerinde bir karakter dizgisi (string) X kümesindeki öğelerden oluşan bir sonlu dizidir. Hiç bir öğesi olmayan bir karakter dizgisine boş karakter
Detaylı(a,b) şeklindeki ifadelere sıralı ikili denir. Burada a'ya 1. bileşen b'ye 2. bileşen denir.
BĞANTI - FONKSİYON 1. Sıralı İkili : (a,b) şeklindeki ifadelere sıralı ikili denir. Burada a'ya 1. bileşen b'ye 2. bileşen denir.! (x 1,x 2, x 3,x 4,...x n ) : sıralı n li denir. Örnek, (a,b,c) : sıralı
DetaylıBölüm 3 Toplama ve Çıkarma Devreleri
Bölüm 3 Toplama ve Çıkarma Devreleri DENEY 3- Yarım ve Tam Toplayıcı Devreler DENEYİN AMACI. Aritmetik birimdeki yarım ve tam toplayıcıların karakteristiklerini anlamak. 2. Temel kapılar ve IC kullanarak
DetaylıFinal Sınavı Örnek Soruları Bahar 2018
Sayfa#1 Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 2116 Veri Yapıları Dersi Final Sınavı Örnek Soruları Bahar 2018 Süre: 70 Dakika Adı ve Soyadı YANIT ANAHTARI Öğrenci Numarası Grubu
DetaylıYZM 2116 Veri Yapıları
YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 8 Problem Tanımı Arama Ağaçları İkili Arama
DetaylıDeğişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while
Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne
DetaylıFonksiyonlar istenilen deger tipinde dönüs yapabilir. INT, VARCHAR deger döndürebileceğiniz gibi bir tablo da döndürebilirsiniz.
Fonksiyonlar tamamen işimizi kolaylaştırmak adına sürekli olarak tekrarladığımız sql sorgularına tek bir noktadan erişmemizi sağlar. Buda bize hızlı bir erişim imkanı,hızlı bir hata kontrol mekanizması,
Detaylı1.4. KISMİ SIRALAMA VE DENKLİK BAĞINTILARI
Reel sayılar kümesinin "küçük ya da eşit", bağıntısı ile sıralanmış olduğunu biliyoruz. Bu bağıntı herhangi bir X kümesine aşağıdaki şekilde genelleştirilebilir. Bir X kümesi üzerinde aşağıdaki yansıma,
DetaylıMATM 133 MATEMATİK LOJİK. Dr. Doç. Çarıyar Aşıralıyev
MATM 133 MATEMATİK LOJİK Dr. Doç. Çarıyar Aşıralıyev 5.KONU Cebiresel yapılar; Grup, Halka 1. Matematik yapı 2. Denk yapılar ve eş yapılar 3. Grup 4. Grubun basit özellikleri 5. Bir elemanın kuvvetleri
DetaylıAğaç Yapıları (Tree Structures) Kütük Organizasyonu 1
Ağaç Yapıları (Tree Structures) Kütük Organizasyonu 1 İçerik Temel Kavramlar Ağaçlarda Dolaşım İkili Ağaçlar (Binary Trees) İkili Arama Ağacı (Binary Search Tree ve Temel İşlemler Kütük Organizasyonu 2
DetaylıEln 1001 Bilgisayar Programlama I
Eln 1001 Bilgisayar Programlama I GiriŞ / ǹk¹Ş Fonksiyonlar¹ Ne ÖĆreneceĆiz? Temel Giriş/Çıkış Yapısı Giriş Fonksiyonları Karakterler için giriş fonksiyonları Scanf fonksiyonu Formatlı giriş Çıkış Fonksiyonları
Detaylı