! " # $ % & '( ) *' ' +, -. /.,

Benzer belgeler
BAĞLAMDAN BAĞIMSIZ VE BAĞLAMDAN BAĞIMSIZ OLMAYAN DİLLER (CONTEXT-FREE AND NON-CONTEXT-FREE LANGUAGES)

1 $/ " {ww R : w {a, b} * } ## S asa, S bsb S e#(3 * 5 $(6 )# (2 #$,(- (25 #5

! " # $ % & '( ) *' ' +, -. /) /) 0 # /) %, %, 1 2

! " # $ % & '( ) *' ' +, -. / $ 2 (.- 3( 3 4. (

,$( -./(,$( 0$0$ (,$(

BAĞLAMDAN BAĞIMSIZ (CONTEXT-FREE) GRAMERLER (CFG) VE DİLLER (CFL)

! " # $ % & '( ) *' ' +, $ $ - $ (. $- $ ( / $ % / $ 0 -( 1( $ (2- -(

Syntax Analysis. 4/5/2004 Formal Diller 4.1

#$% &'#(# Konular. Binary Tree Structures. Binary Search Trees AVL Trees Internal Path Reduction Trees Deerlendirme

#$% &'#(# Konular. B-Tree and Derivatives. B-Trees B#-Trees B+-Trees Deerlendirme

#$% &'#(# Konular. Bits of Information. Binary Özellikler Superimposed Coding Signature Formation Deerlendirme

Formal Diller Ve Otomat Teorisi

Otomata Teorisi (BİL 2114)

Derleyici Kuramı (Compiler Theory)

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

Context-Free Grammars and Languages

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

#$% &'#(# Konular. Direct File Organization. Progressive Overflow Buckets Linear Quotient Brent s Method Binary Tree

Otomata Teorisi (BİL 2114)

Regular Expression vs. Context-Free Grammars. Ambiguity. NFA to CFG. Neden RE ler kullanilir?

FORMEL DİLLER VE SOYUT MAKİNALAR. Hafta 1

Otomata Teorisi (BİL 2114)

+,- #'. L = {a, b, c, d} a, b, c, d kümenin elemanları veya üyeleridir

BM312 Ders Notları

YZM Biçimsel Diller ve Otomata Teorisi. Ders#06

Dilbilgisi ve Diller

ndirgenme Boyutu Üç Olan Fibonacci Simetrik Sayısal Yarıgruplarının Bir Sınıfı

LEM KURALLARI BLDRM FORMU. Önemli Açıklama

#$% &'#(# Konular. Direct File Organization. Computed Chaining Comparison of Collision Resolution Methods Perfect Hashing Cichelli s Algorithm

DERLEYİCİ TASARIMI ÖDEV-2 RAPORU

FORMEL DİLLER VE SOYUT MAKİNALAR. Hafta 3

1. Satı ve Daıtım lemleri " # $ "!!

Tokenlarin Taninmasi

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.

MUSK MUALLM MEKTEBNDEN GÜNÜMÜZE MÜZK ÖRETMEN YETTRME PROGRAMLARINDAK YAYLI ÇALGI ÖRETMNE LKN SINAMA-ÖLÇME-DEERLENDRME DURUMLARININ NCELENMES

Bil 2114 Otomata Teorisi Çalışma Soruları ve Cevapları III (Hafta 7,8,9)

Taıt alımlarının ette tüketim endeksi kapsamında izlenmesi hakkında bilgi notu

Hazırlayan:M.Hilmi Eren

Konular. Sequential File Organization. Direct File Organization #$% &'#(# Binary Search Interpolation Search Self-Organizing Sequential Search

Lineer Cebir. Doç. Dr. Niyazi ŞAHİN TOBB. İçerik: 1.1. Lineer Denklemlerin Tanımı 1.2. Lineer Denklem Sistemleri 1.3. Matrisler

BENMAR VE KURUTMA DOLABININ KULLANIMI

Excel Sorular? 1. Excel Sorular? 1. A Grubu

#$% &'#(# Konular. Hashing Techniques and Expandable Files. Background Extendible Hashing Dynamic Hashing Linear Hashing Deerlendirme

BİLGİSAYAR MÜHENDİSLİĞİ

Çizelge 4.1 Bilgisayar ile insan beyni arasındaki çalıma sistem yapısının karılatırılması BLGSAYAR NSAN BEYN

6. MOS ANALOG ÇARPMA DEVRELER

ASP.NET Web Uygulamalarında Güvenlik

SAYILAR MATEMATİK KAF03 BASAMAK KAVRAMI TEMEL KAVRAM 01. İki basamaklı en küçük sayı : İki basamaklı en büyük negatif sayı :.

L SANS YERLE T RME SINAVI 1

Semantik (Semantics): ifadelerin, deyimlerin, ve program birimlerinin anlamı Sentaks ve semantik bir dilin tanımı sağlar

Nesne Yönelimli Programlama

Giri. Form Nedir? Bir formun yapısı

4 ab sayısı 26 ile tam bölünebildiğine göre, kalanı 0 dır.

Bölüm 4. Sözcüksel ve Sözdizimsel Analiz ISBN

BM312 Ders Notları 2014

Otomata Teorisi (BIL 2114)

MATEMATK ÖRETMNDE BULMACA ETKNLNN ÖRENC BAARISINA ETKS

BÖLÜM 3. A. Deneyin Amac

Properties of Regular Languages. Mart 2006 Ankara Üniversitesi Bilgisayar Mühendisliği - TY 1

Giri. Program yazmaya balamadan önce

FORMEL DİLLER VE SOYUT MAKİNALAR. Hafta 2

Konular. Hafta 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

VB de Veri Türleri 1

FONKSYONLARI FONKSYONLARA GÖTÜREN FONKSYONLAR ÜZERNDE ANT-MONOTONLUK VE DEMPOTENTLK

XII. Ulusal Matematik Olimpiyatı Birinci Aşama Sınavı

KÖKLÜ SAYILAR. 1 n n. x a a x say s na a n n n. kuvvetten kökü denir. Köklü say lar n. çözüm. n n. a özelli inden, çözüm. m n n. çözüm. çözüm.

TEOG. Sayma Sayıları ve Doğal Sayılar ÇÖZÜM ÖRNEK ÇÖZÜM ÖRNEK SAYI BASAMAKLARI VE SAYILARIN ÇÖZÜMLENMESİ 1. DOĞAL SAYILAR.

Otomata Teorisi (BİL 2114)

Kullanım kılavuzunuz ESET MOBILE ANTIVIRUS

3. YÜZEYSEL SULARDAN SU ALMA

MONTE CARLO SMÜLASYONUNDA BETMSEL ÖRNEKLEME YAKLAIMI VE GDA BAKIRKÖY VEZNELERNE BR UYGULAMA ÇALIMASI

Ö RENME FAAL YET DOSYALAMA LEMLER AMAÇ ARA TIRMA Genel Bilgiler

ÇEVR. How Our Methods Of Writing Algebra Have Evolved: A Thread Through History. Cebri Yazma Metotlarımız Nasıl Deiim Gösterdi: Tarihe Yolculuk

Borsa : Vadeli lem ve Opsiyon Borsası A.. ni,

3 1 x 2 ( ) 2 = E) f( x) ... Bir sigorta portföyünde, t poliçe yln göstermek üzere, sigortal saysnn

statistiksel Proses Kontrol -Uygulamalar -

1. GRUPLAR. c (Birleşme özelliği) sağlanır. 2) a G için a e e a a olacak şekilde e G (e ye birim eleman denir) vardır.

TÜLN OTBÇER. Seminer Raporu Olarak Hazırlanmıtır.

BLGSAYAR DESTEKL TASARIM HAFTA 4 SOLIDWORKS LE KATI MODELLEME

MUTLAK DEĞER Test -1

!!"#! $#$%& '(& )*$+,( -. )/0 1-2 *. / *. /0 3 )56 7

IRROMETER NASIL ÇALIIR...

Boole Cebri. (Boolean Algebra)

Kullanım Kılavuzu. Çamaır Makinası PW9

KONTROL SSTEMLER LABORATUARI

1. BÖLÜM. Sayılarda Temel Kavramlar. Bölme - Bölünebilme - Faktöriyel EBOB - EKOK. Kontrol Noktası 1

3. 27 I C C' C C (V B ' C ') C DC. EM1 Modeli I B C E (V B ' E ') E' r E ' I E

PIC16F84, PIC16F84A, PIC16F628,

Kuvvet P = S. P 1 = ve P = = BASINÇ. 3. Eik düzlem üzerindeki bir cismin zemine uyguladıı basınç;

En Muhtemel Sayı (EMS) Yöntemi ( 3 lü EMS)

Y = 29,6324 X 2 = 29,0871 X 3 = 28,4473 y 2 = 2,04 x 2 2 = 0,94 x 2 3 = 2,29 yx 2 = 0,19 yx 3 = 1,60 x 2 x 3 = 1,06 e 2 = 0,2554 X + 28,47 X 3-0,53

Ağaçlar (Trees) Ağaçlar (Trees)

Pozisyon Kontrol Sistemi Üzerine Karakteristik Yapı Çalı ması: STANBUL

ELEKTRK MÜHENDSLER ODASI MESLEK Ç SÜREKL ETM MERKEZ YÖNETMEL

KALE RF Geçi Kontrol Ünitesi

Kullanım kılavuzunuz NAVIGON

12 SINIF MATEMATİK ÜSTEL VE LOGARİTMİK FONKSİYONLAR DİZİLER

çindekiler ekkürler Kulak-seti çözümleri itme cihazı Kulak kalıbı ile i itme cihazı Anında kulak-ucu ile i itme cihazı

BASINÇ DÜÜRME VE EMNYET STASYONU CHAZLARI SSTEMLER

IP Aları Üzerinden Telefon Hizmetlerinde Gecikme Latency

Transkript:

!"#$ %& '()*' ' +,-./.,-. 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 ilemleri için kapalıdır. Proof: G 1 = (V 1, 1, R 1, S 1 ) ve G 2 = (V 2, 2, R 2, S 2 ) iki farklı grammar olsun. Bu iki grammar için nonterminal kümeleri disjoint olsun. (V 1 1 ) (V 2 2 ) = φ Union S yeni bir sembol ve G = (V 1 V 2 {S}, 1 2, R, S) ve R = R 1 R 2 {S S 1, S S 2 } olsun. Amaç L(G) = L(G 1 ) L(G 2 ) olduunu göstermektir. Herhangi bir w string i için ( S S 1, S S 2 olduundan) S * G w olur eer sadece ve sadece S 1 * G w veya S 2 * G w ise. Nonterminaller kümeleri disjoint olduu için ilk kuralla S 1 veya S 2 ye geçildikten sonra dierine tekrar dönülmez.

,-./.,- Proof: (devam) Concatenation G = (V 1 V 2 {S}, 1 2, R 1 R 2 {S S 1 S 2 }, S) eklinde tanımlanan bir grammar le L(G 1 )L(G 2 ) dili oluturulabilir. Birinci grammar deki nonterminaller (S 1 içindeki) terminallere dönütürüldükten sonra ikinci grammar deki nonterminaller (S 2 içindeki) terminallere dönütürülür.,-./.,- Proof: (devam) Kleene star G = (V 1 {S}, 1, R 1 {S e, S SS 1 }, S) eklinde tanımlanan bir grammar le L(G 1 ) * dili oluturulabilir. S SS 1 kuralının tekrarı ile dildeki kuralın (S S 1 ) tekrarı istenen sayıda yapılabilir.

,-./.,- Tanımlar: G = (V,, R, S) bir context-free grammar olsun. G nin fanout deeri φ(g) olarak gösterilir ve R kurallar kümesinde sa kısmı en uzun olan kuralın sa kısmındaki sembol sayısıdır. Bir parse tree üzerinde path root node ile yaprak node arasında farklı node lardan geçilerek elde edilen sıradır. Yolun length deeri üzerindeki çizgi sayısıdır. Bir parse tree için height en uzun yolun length deeridir.,-./.,- Lemma: G grammar ine ait h height deerine sahip bir parse tree nin ürettii string in uzunluu en çok φ(g) h olabilir. Proof: h = 1 için parse tree grammar içinde bir kuraldır (2.durum). Ençok φ(g) h =φ(g) uzunluunda string üretilir. (Sabc, Sabcabcabc) h 1 olan her h deeri için yeni bir root oluur h-1 yüksekliindeki parse tree leri birbirine balar. h+1 için yükseklii ençok h olan enfazla φ(g) adet parse tree birbirine balanır (3.durum). Her parse tree φ(g) h uzunluunda string oluturur ve toplam en çok φ(g) h+1 uzunluunda string oluur. R 1 = (A ababa, A aba,...), R 2 = (S AAA, A ababa,...) h= 1

,-./.,- Pumping Theorem: G = (V,, R, S) bir CFG olsun. Uzunluu φ(g) V- dan büyük her w L(G) string i w = uvxyz eklinde yazılabilir. Tüm n 0 deerleri için v veya y den birisi bo olmamak kaydıyla uv n xy n z L(G) olur. Bunu salamayan non-context-free dildir. Örnek: L = {a n b n c n : n 0} dili non-context-free dir. Bir CFG G = (V,, R, S) için L = L(G) olduunu düünelim. w = a n b n c n dile ait olmalıdır ve w = uvxyz eklinde gösterilebilmelidir. Burada v veya y den en az birisi bo olamaz ve tüm n 0 için uv n xy n z L(G) olmalıdır. Eer vy string i a, b ve c lerin üçünüde içerirse v ve y den birisi en az ikisini (ab, bc) içerir. uv 2 xy 2 z string i a,b,c lerin sırasını bozar. b lerden sonra a veya c lerden sonra b gelir. Eer vy string i a, b ve c lerin bir kısmını içerirse uv 2 xy 2 z string i eit olmayan sayıda a, b ve c ler üretir.,-./.,- Theorem: Context-free diller complementation ve intersection için kapalı deildir. Proof: {a n b n c m : m,n 0} ile {a m b n c n : m,n 0} dilleri context-free dir. Bu iki dilin kesiimi {a n b n c n : n 0} olur. Bu dil non-context-free dir. L1 L2 = L1 L2 olduu için eer complementation için kapalı olsaydı kesiim içinde kapalı olurdu.

0,-.52 - )78## #" 0 8 87$ 27 28 #" 0762 ) 7"72 8", 2(26 7 7 7#2 *'8''", 228 78 2(3 #" $#06 $6 $ #8 " 0 Bir pushdown automaton deterministic tir (DPDA) eer herbir configuration için kendisini izleyen sadece bir configuration varsa. ki transition relation ((p, a, ), (q, )) ve ((p, a6, 6), (q6, 6)) compatible dır eer ikisinide kabul eden bir durum varsa. Eer M pushdown automata deterministic ise iki farklı compatible geçi olamaz.

0 Örnek: L = {wcw R : w {a, b} * } dilini kabul eden aaıdaki PDA deterministic tir M = ( K,,,, s, F), K = {s, f}, = {a, b, c}, = {a, b}, F = {f} toplam 5 adet geçi ilikisine sahip olsun; 1. ((s, a, e), (s, a)) 2. ((s, b, e), (s, b)) 3. ((s, c, e), (f, e)) 4. ((f, a, a), (f, e)) 5. ((f, b, b), (f, e)) Herbir durum ve giri sembolü için sadece bir geçi vardır. 0 Örnek: L = {ww R : w {a, b} * } dilini kabul eden aaıdaki PDA nondeterministic tir M = ( K,,,, s, F), K = {s, f}, = {a, b}, = {a, b}, F = {f} toplam 5 adet geçi ilikisine sahip olsun; 1. ((s, a, e), (s, a)) 2. ((s, b, e), (s, b)) 3. ((s, e, e), (f, e)) 4. ((f, a, a), (f, e)) 5. ((f, b, b), (f, e)) Transition 3, 1 ve 2 ile compatible dır. Ayrıca string in orta noktası tahmin edilmektedir.

0 Deterministic context-free diller DPDA tarafından kabul edilir. Deterministic context-free diller giri string inin sonunu gösterebilmelidirler. L * deterministic context-free dildir eer DPDA M için L$ = L(M) ise. Burada $ iareti string in sonunu göstermektedir ve $ dir. $ iareti tüm string lere otomatik olarak eklenmitir. 12.30 Örnek : L = {a n b n : n 0 } context-free dildir ve G = ({a, b, S}, {a, b}, R, S) grammar i tarafından üretilir. R = (Se, SaSb) kurallarına sahiptir. Önce bir PDA oluturalım. M 1 = ({p, q}, {a, b}, {a, b, S}, 1, p, {q}). 1 ={((p, e, e), (q, S)), ((q, e, S), (q, asb)), ((q, e, S), (q, e)), ((q, a, a), (q, e)), ((q, b, b), (q, e))} M 1 otomatı deterministic hale dönütürülebilir ve L$ dilini kabul eder. M 2 =({p, q, q a, q b, q $ }, {a, b}, {a, b, S}, 2, p, {q $ }) 2 ={((p, e, e), (q, S)), (1) ((q b, e, b), (q, e)), (5) ((q, a, e), (q a, e)), (2) ((q, $, e), (q $, e)), (6) ((q a, e, a), (q, e)), (3) ((q a, e, S), (q a, asb)), (7) ((q, b, e), (q b, e)), (4) ((q b, e, S), (q b, e)) } (8) M 2 q durumundayken stack ta ilem yapmadan giriten bir sembol okur ve q a, q b veya q $ durumlarından birisine geçer. Böylece compatible iki geçi olan ((q, e, S), (q, asb)) ve ((q, e, S), (q, e)) geçilerini ayırır.

12.30 Örnek : (devam) DPDA M 2 nin ab$ için geçileri aaıda verilmitir.. 12.30 Örnek : (devam) M 2, L = {a n b n } diline ait string leri tanımak için deterministic olarak çalıır. M 2 giri string ini leftmost derivation ile üretir. Örnekteki 3. ve 6. adımlar parse tree nin oluturulduu adımlardır. M 2 string in dile ait olup olmadıını bulur, aynı anda parse tree oluturur. Parse tree compiler ların kullandıı parser larda assembly dilinde program oluturmak için kullanılmaktadır. M 2 top-down parser dır, parse tree top-down ve left-to-right yaklaımıyla oluur.

12.30 Örnek: Daha önce doru yazılmı aritmetik ifadeler için oluturulmu grammar e F (E), eklinde bir kural ekleyelim. Bu yeni kural fonksiyon çaırmalarını salar. (Örn.: sqrt(x * x + 1) ) Bu grammar için bir top-down parser oluturalım. M 3 = ({p, q},,,, p, {q}), = {(, ), +, *, id}, = {E, T, F} =0. ((p, e, e), (q, E)) 1. ((q, e, E), (q, E+T)) 2. ((q, e, E), (q, T)) 3. ((q, e, T), (q, T*F)) 4. ((q, e, T), (q, F)) 5. ((q, e, F), (q, (E))) 6. ((q, e, F), (q, id)) 7. ((q, e, F), (q, id(e))) ve son olarak tüm a için ((q, a, a), (q, e)) olsun. 12.30 Örnek: (devam) Bu otomatta nondeterminism 1-2, 3-4 ve 5-6-7 kurallarından kaynaklanmaktadır. Transition 6 ve 7: M 3 otomatının (q, id, F) konfigürasyonunda olduunu düünelim. M 3 bu durumda 5, 6 veya 7 geçilerinden birisini seçebilir. Input string teki bir sonraki sembole (id) bakarak 5 elenir. Transition 5 te (()bir sonraki semboldür. Ancak bir sonraki sembol 6 ve 7 için aynıdır (id). Bu problem sa tarafı aynı olmasada ilk sembolü aynı olan F id ve F id(e) kurallarından kaynaklanmaktadır. F id ve F id(e) kurallarının yerine F ida, A e ve A (E) kuralları konularak giderilebilir. Burada A yeni bir nonterminaldir. Transition 6 ve 7 yerine aaıdaki kurallar konur; 66. ((q, e, F), (q, ida)) 76. ((q, e, A), (q, e)) 86. ((q, e, A), (q, (E))) Geçiler (q, id(id), F) M (q, id(id), ida) M (q, (id), A) M (q, (id), (E)) M... olur.

12.30 Nondeterminismi ortadan kaldırmak için kullanılan bu teknik left factoring olarak adlandırılır. Aaıdaki kural ile özetlenebilir; Heuristic Rule 1: Eer A 1, A 2,..., A n eklinde kurallar varsa ve e ve n 2 ise, bu kurallar AA6, A6 i kurallarıyla deitirilir. A6 yeni nonterminaldir. 12.30 Transition 1 ve 2: Eer M 3 otomatı bir sonraki input sembol için id görürse, ve stack taki E ise birkaç farklı ilem yapılabilir. Transition 2 yapılarak E yerine T yazılır. Giriin sadece id olması durumunda bu geçerlidir. Transition 1 kullanılarak E yerine E + T yazılır. Giriin id + id olması durumunda geçerlidir. Transition 1 iki defa ve Transition 1 bir defa kullanılabilir. Giriin id + id + id olması durumunda geçerlidir. Burada sa taraftaki ilemin kaç defa tekrarlanacaının sınırı belli deildir. Bu olay left recursion olarak adlandırılır. Bu problem E E + T kuralından kaynaklanmaktadır. Soldaki nonterminal sadaki ilk semboldür. E E + T ve E T kuralları yerine E TE6, E6 +TE6ve E6 e kuralları konularak giderilebilir. Burada E6 yeni bir nonterminaldir. Aynı ilem T T * F, T F içinde yapılır. T FT6, T6 *FT6ve T6 e

12.30 Örnekteki grammar in son ekli aaıdaki gibi olur. G6 = (V6,, R6, E), V6= {E, E6, T, T6, F, A}, R = 1. E TE6 2. E6 +TE6 3. E6 e 4. T FT6 5. T6 *FT6 6. T6 e 7. F (E) 8. F ida 9. A e 10. A (E) 12.30 Nondeterminismi ortadan kaldırmak için kullanılan bu left recursion teknii aaıdaki kural ile özetlenebilir; Heuristic Rule 2: Eer AA 1,..., AA n ve A 1,...,A m eklinde kurallar varsa ve i ler A ile balamıyorsa ve n > 0 ise, bu kurallar A 1 A6,..., A m A6ve A6 1 A6,..., A6 n A6ve A6e kurallarıyla deitirilir. A6 yeni nonterminaldir.

12.30 Örnek: Önceki grammar i tanıyan DPDA M 4 = L(G6)$ oluturalım. M 4 = (K, {$}, V6,, p, {q $ }), K = {p, q, q id, q +, q *, q ), q (, q $ }, =((p, e, e), (q, E)) ((q, a, e), (q a, e)) tüm a { $ } ((q a, e, a), (q, e)) tüm a ((q a, e, E), (q a, TE6)) tüm a { $ } ((q +, e, E6), (q +, +TE6)) ((q a, e, E6), (q a, e)) tüm a { ), $ } ((q a, e, T), (q a, FT6)) tüm a { $ } ((q *, e, T6), (q *, *FT6)) ((q a, e, T6), (q a, e)) tüm a { +, ), $ } ((q (, e, F), (q (, (E))) ((q id, e, F), (q id, ida)) ((q (, e, A), (q (, (E))) ((q a, e, A), (q a, e)) tüm a { +, *, ), $ } M 4 deterministic pushdown automaton u G grammar i için bir parser dır. 12.30 Örnek: (devam) id * (id)$ giri string i aaıdaki tabloda görüldüü gibi kabul edilir.

Örnek: (devam) 12.30 12.30 Örnek: (devam) G6 deki kurallar ile stack üzerinde nonterminal deitirilen adımlar tabloda son sütunda numaralandırılmıtır. Sırayla bu kurallar uygulandıında id*(id)$ string inin leftmost derivation ı elde edilir. Oluturulan parse yandadır. E TE6 FT6E6 idt6e6 id *FT6E6 id *(E)T6E6 id *(TE6)T6E6 id *(FT6E6)T6E6 id *(idt6e6)t6e6 id *(ide6)t6e6 id *(id)t6e6 id *(id)e6 id *(id) Parse tree top-down ve left-first olarak olumutur.

.420 Context-free dillerin parse edilmesinde en iyi yol yoktur. Farklı grammar ler için farklı yöntemler vardır. Farklı bir yaklaımda automaton ilk önce girii okur ve derivation sonra yapılır. Sonuçta parse tree yapraklardan root node a doru gerçekleir. Bu yöntemler bottom-up olarak adlandırılırlar..420 G = (V,, R, S) bir CFG için M = (K,,,, p, F) bottom-up pushdown automaton u oluturalım. Burada K = {p, q}, = V, F = {q} ve aaıdaki geçilere sahip olsun. 1. ((p, a, e), (p, a)) tüm a için 2. ((p, a, R ), (p, A)) tüm A R için 3. ((p, e, S), (q, e)) Her transition bir transition sınıfını göstermektedir. Transition 1 input sembolleri stack a aktarır. Transition 2 stack ta kuralların sa kısmının yerine sol kısmını deitirir. Kuralların sa kısmı ters sırada bulunmalıdır. Transition 3 ise sonuç durumuna geçerek çalımayı sonlandırmayı salar.

.420 Örnek: Aritmetik deyimleri üreten gramer için bir bottom-up pushdown automaton oluturalım. Kurallar aaıdaki gibi olsun. E E + T (R1) E T (R2) T T * F (R3) T F (R4) F (E) (R5) F id (R6) M pushdown automaton u için aaıdaki geçiler oluturulur. (p, a, e), (p, a) tüm a için ( 0) (p, e, T + E), (p, E) ( 1) (p, e, T), (p, E) ( 2) (p, e, F * T), (p, T) ( 3) (p, e, F), (p, T) ( 4) (p, e, )E(), (p, F) ( 5) (p, e, id), (p, F) ( 6) (p, e, E), (q, e) ( 7).420 Örnek: (devam) id * (id) aaıdaki gibi kabul edilir.

.420 Örnek: (devam) M otomatı deterministic deildir. Çünkü 0 dier tüm geçilerle ( 1-8) compatible dir. Herhangi bir anda M bir terminali stack a aktarabilir (1, 4, 5, 6 ve 10 adımlar) veya stack taki birkaç sembolü bir kuralın sa kısmı olarak elde edebilir. Kuralın sa kısmı olarak görülen string sol kısımla deitirilerek indirgenir( 1 6). ndirgeme yapılan adımlar ters sırada alınırsa rightmost derivation yapılır..420 Örnek: (devam) ndirgeme yapılan adımların ters sırada alınmasıyla elde edilen rightmost derivation aaıdaki gibidir. E T T * F T * (E) T * (T) T * (F) T * (id) F * (id) id * (id)

9 07 *''"":$ 5;<= 07 *''"" 5;<= 07 *''"";<>"";<$ 5;<? 07 *''"@";>"@";7 5;@