Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Bahasa Context Free.

Presentasi serupa


Presentasi berjudul: "Bahasa Context Free."— Transcript presentasi:

1 Bahasa Context Free

2 OBJECTIVE Memahami Context Free Grammar Memahami Derivasi
Memahami Pohon Sintaks

3 CFG Secara formal, CFG didefinisikan : CFG G = (V,T,P,S) dimana : V adalah daftar variabel produksi T adalah daftar simbol atau terminal yang dipakai dalam CFG P adalah aturan produksi CFG S adalah variabel start Bentuk umum produksi CFG adalah :   ,   VN,   (VNVT)*

4 CFG Context Free Grammar (CFG)/ Bahasa Bebas Konteks adalah sebuah tata bahasa dimana tidak terdapat pembatasan pada hasil produksinya, Contoh Pada aturan produksi : α → β batasannya hanyalah ruas kiri (α) adalah sebuah simbol variabel. Sedangkan contoh aturan produksi yang termasuk CFG adalah seperti di bawah : B → CDeFg D → BcDe

5 ANALISIS SINTAKS Penelusuran sebuah kalimat (sentensial) sampai pada simbol awal grammar. Analisis sintaks dapat dilakukan melalui derivasi atau parsing. Penelusuran melalui parsing menghasilkan pohon sintaks.

6 DERIVASI/PARSING Parsing dari sebuah kalimat adalah konstruksi atau pembentukan pohon sintaks untuk kalimat tersebut. Parsing dapat dilakukan dengan cara : Penurunan terkiri (Leftmost derivation) : symbol variabel yang paling kiri diturunkan (tuntas) dahulu Penurunan terkanan (Rightmost derivation) : symbol yang paling kanan diturunkan (tuntas) dahulu

7 DERIVASI/PARSING Contoh : ingin dihasilkan string aabbaa dari Context free language : S → aAS │ a A → SbA │ ba Penurunan kiri Penurunan kanan S → aAS S → aAS → aSbAS → aAa → aabAS → aSbAa → aabbaS → aSbbaa → aabbaa → aabbaa

8 DERIVASI/PARSING Contoh : Diketahui grammar G = {I  HI HIA, H  abc...z, A  012...9} dengan I adalah simbol awal. Berikut ini kedua cara analisa sintaks untuk kalimat x23b.

9 DERIVASI/PARSING Contoh : Diketahui grammar G = {S  SOSA , O  *+, A  012...9} Kalimat : 2*3+7 mempunyai dua pohon sintaks berikut : Sebuah kalimat yang mempunyai lebih dari satu pohon sintaks disebut kalimat ambigu (ambiguous). Grammar yang menghasilkan paling sedikit sebuah kalimat ambigu disebut grammar ambigu.

10 CNF (Chomsky Normal Form)
Aturan produksi CFG dapat ‘dinormalkan’ dengan pola tersendiri supaya tidak ambigu dan lebih sederhana, meskipun normalisasi CFG kadang membuat aturan produksi menjadi lebih banyak dari sebelumnya. Teknik normalisasi yang digunakan dalam hal ini adalah CNF (Chomsky Normal Form).

11 CNF (Chomsky Normal Form)
Contoh desain CNF dari bahasa CFG, semisal CFGberikut: S -> aA | bB (1) A-> Baa|ba B -> bAA|ab CFG (1) tersebut ekivalen dengan CFG dibawah ini,dimana symbol terminal memiliki variabel produksi tersendiri: S -> DA | EB (2) A -> BDD | ED B -> EAA | DE D -> a E -> b CNF yang dihasilkan dari CFG (2) diatas ialah: S -> DA | EB (3) A -> BF | ED B -> EH | DE F -> DD H -> AA D -> a E -> b

12 METODE PARSING Ada 2 metoda parsing : top-down dan bottom-up. Parsing top-down : Parsing dimulai dari simbol awal S sampai kalimat x Parsing bottom-up : Parsing dimulai dari kalimat x sampai simbol awal S

13 METODE PARSING Ada 2 kelas metoda parsing top-down : kelas metoda dengan backup Contoh: metoda Brute-Force kelas metoda tanpa backup Contoh: metoda recursive descent.

14 METODE PARSING METODE BRUTE FORCE metoda Brute-Force, adalah kelas metoda parsing yang menggunakan produksi alternatif, jika ada, ketika hasil penggunaan sebuah produksi tidak sesuai dengan simbol input. Penggunaan produksi sesuai dengan nomor urut produksi.

15 METODE PARSING

16 <OPERAND>  <ID> <INTEGER>
LATIHAN PERHATIKAN GRAMMAR BERIKUT <OPERAND>  <ID> <INTEGER> <ID>  <LETTER><LIST> <LETTER>  xyz <LIST> <LETTER><LIST><DIGIT><LIST> <DIGIT>  0123456789 <INTEGER>  <SIGN><DIGIT><DIT> <SIGN>  +- <DIT>  <DIGIT><DIT>   Simbol Start : <OPERAND> Lakukan Derivasi/Parsing untuk memperoleh string y7, -294, 4xy2, x2y, -21x, xxb, +1230, x123, x-y+2, x1x2x3x, xxxyyy

17 <OPERAND>  <ID> <INTEGER>
LATIHAN PERHATIKAN GRAMMAR BERIKUT <OPERAND>  <ID> <INTEGER> <ID>  <LETTER><LIST> <LETTER>  xyz <LIST> <LETTER><LIST><DIGIT><LIST> <DIGIT>  0123456789 <INTEGER>  <SIGN><DIGIT><DIT> <SIGN>  +- <DIT>  <DIGIT><DIT>   Simbol Start : <OPERAND> Lakukan Derivasi/Parsing untuk memperoleh string y7, -294, 4xy2, x2y, -21x, xxb, +1230, x123, x-y+2, x1x2x3x, xxxyyy

18 LATIHAN PERHATIKAN GRAMMAR BERIKUT <EKSPRESI>  <EKSPRESI><ASOP><SUKU><SUKU> <SUKU>  <SUKU><MDOP><FAKTOR><FAKTOR> <FAKTOR>(<EKSPRESI>)operand (a-z) <ASOP>  +- <MDOP>    / Simbol start : <EKSPRESI> buatlah pohon sintaks dari string: ( ( x – 25 ) / y ) + 3 * z (a-b) / ((c+d)*e)


Download ppt "Bahasa Context Free."

Presentasi serupa


Iklan oleh Google