Top Banner

of 23

Bahasa Automata - Tata Bahasa Bebas Konteks

Oct 12, 2015

Download

Documents

Alfanur Rizal

Materi Bahasa Automata Teknik Informatika
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • BAHASA AUTOMATAKelompok 1 :1. Fatimatu Zahro(10201433)2. M. Alfanur Rizal M(10201107)3. Novendra Dwi S(10201106)4. Sasongko Hudi B(09201573)

    Tata Bahasa Bebas Konteks

  • Motivasi awal :Deskripsi bahasa alami kucing berlari menyapu

    Contoh kalimat yang dapat dihasilkankucing berlarikucing menyapu(sintaks yes, semantik no)

  • Dalam tatabahasa bebas konteksRuas kiri dari aturan produksi terdiri dari SATU simbol non terminal

    Ruas kanan dapat berupa string yang dibentuk dari simbol terminal dan non terminal

  • ContohS aSb | Kalimat-kalimat yang dibangkitkan dari aturan produksi itu dalah ,ab,aabb,aaabbb,... , anbn

    A 0A0A 1A1AaKalimat-kalimat yang dibangkitkan dari aturan produksi itu adalah a,01a10, 1001a1001 , 110a011 aR

    S aSb | SS |Bahasa yang dihasilkan oleh tatabahasa dengan aturan produksi di atas adalah :L = {w (a + b)* |na(w) =nb(w) }

  • Leftmost dan Rightmost Derivation

  • Leftmost dan Rightmost DerivationSuatu penguraian /penurunan dikatakan leftmost derivation bila setiap tahapan penurunan variabel / non terminal terkiri yang diuraikan.

    Apabila setiap tahapan penurunan variabel / non terminal paling kanan yang diuraikan disebut rightmost derivation

  • Contoh 1G=({A,B,S}, {a,b},S,P} dengan aturan produksi P :S ABA aaA | BBb | Menspesifikasikan bahasaL(G) = {a2nbm | n0 , m0}Leftmost derivation untuk menghasilkan string aab S AB aaAB aaB aaBb aabRighmost derivation untuk menghasilkan string aabS AB ABb aaABb aaAb aab

  • Contoh 2G=({A,B,S}, {a,b},S,P} dengan aturan produksi P :S aABA bBbB A | Leftmost derivation untuk menghasilkan string abbbbS aAB abBbB abAbB abbBbbB abbbbB abbbbRighmost derivation untuk menghasilkan string aabS aAB aA abBb abAb abbBbb abbbb

  • Pohon urai Untuk menampilkan penguraian, dapat dilakukan dengan membentuk pohon urai (sayangnya, urutan penguraian tidak terlihat). Contoh pohon urai pada contoh sebelumnya :

  • Parsing dan KeanggotaanUntuk menentukan apakah string w berada di L(G), dengan cara secara sistematis membangun semua kemungkinan penurunan, dan mencocokkan hasilnya apakah ada yang sama dengan string w. (disebut exhaustive search parsing)

  • ContohMenentukan apakah string ab berada pada bahasa yang dibentuk oleh grammar dengan aturan produksiS SS | aSb | bSa | Untuk penguraian pertama1. S SS 2. S aSb 3. S bSa 4. S Penguraian nomor 3 dan 4 tidak perlu dilanjutkan. Penguraian 1 membentuk:Penguraian 2 membentuk:1a. S SS SSS2a. S aSb aSSb1b. S SS aSbS2b. S aSb aaSbb1c. S SS bSaS2c. S aSb abSab1d. S SS S2d. S aSb ab

  • Ambiguitas pada Tatabahasa dan Bahasa

  • Ambiguitas pada Tatabahasa dan BahasaTatabahasa bebas konteks G disebut ambigu jika terdapat beberapa w L(G) yang mempunyai paling sedikit dua buah pohon penurunan

    Contoh pada tatabahasa dengan aturan produksi S SS | aSb |

    string aabb mempunyai 2 pohon penurunan :

  • Pumping Lemma untuk bahasa bebas konteksJika suatu rangkaian simbol /string yang cukup panjang yang merupakan sebuah bahasa bebas konteks, maka kita dapat menemukan dua substring yang jaraknya berdekatan yang jika dipompa, string baru yang diperoleh merupakan bahasa bebas konteks juga.

  • Pumping Lemma untuk bahasa bebas konteksSecara formal, lemma diatas dinyatakan dengan

    Syarat kedua lokasi berdekatan dinyatakan dengan kondisi |vwx| n

    Jika salah satu v atau x diambil sebagai string kosong, maka lemma diatas berubah menjadi lemma untuk bahasa reguler

  • ContohContoh tatabahasa dengan aturan produksiS uAyA vAxA wmaka aturan derivasinya S uAy uwyS uAy uvAxy uvwxyS uAy uvAxy uvvAxxy uvvwxxysehingga untuk setiap i 0 , uviwxiy L

  • Sifat sifat tertutup bahasa bebas konteks1. Gabungan dua CFL merupakan CFL jugaJika diketahui dua buah CFG G1= (N1,T1,S1,P1) dan G2=(N2,T2,S2,P2) yang menghasilkan bahasa L1 dan L2 , maka CFG L1 L2 dapat dibentuk dengan cara :menggabungkan kedua himpunan dan menambahkan satu simbol variabel baru Smenggabungkan kedua himpunan simbol terminalmenggabungkan kedua himpunan aturan produksi dan menambahkan satu aturan produksi baru S S1|S2 yang digunakan untuk memilih salah satu simbol awal S1 atau S2 dari simbol awal baru SG3 = (N1N2{S},T1T2 ,S,P1P2 {SS1|S2}}

  • Sifat sifat tertutup bahasa bebas konteks2. Penyambungan dua CFL merupakan CFL jugaJika diketahui dua buah CFG G1= (N1,T1,S1,P1) dan G2=(N2,T2,S2,P2) yang menghasilkan bahasa L1 dan L2 , maka bahasa L1L2 dapat dibentuk oleh :G4 = (N1N2{S},T1T2 ,S,P1P2 {SS1S2}}

  • Sifat sifat tertutup bahasa bebas konteks3. Kleene Klosure dari CFL adalah CFL juga.Kleene Klosure dari tatabahasa G=(N,T,S1,P) adalahG5 = (N {S} , T , S , P {S S1S | } )

  • Sifat sifat tertutup bahasa bebas konteks4. Bahasa bebas konteks tertutup terhadap substitusi Contoh La = {0 n1n | n 1 } dan Lb = { wwR | w (0+2)* }dihasilkan oleh tatabahasa Ga dengan aturan produksi Sa 0Sa1 | 01serta tatabahasa G2 dengan aturan produksiSb 0Sb0 | 2Sb2 |

  • SubstitusiDidefinisikan tatabahasa G dengan aturan produksi S aSbS | bSaS | jika f adalah substitusi f(a)= La dan f(b) = Lb maka f(L) adalah bahasa yang dihasilkan oleh tatabahasa dengan aturan produksiS SaSSbS | SbSSaS | Sa 0Sa1 | 01Sb 0Sb0 | 2Sb2 |

  • Tatabahasa Bebas Konteks dan Bahasa PemrogramanTatabahasa bebas konteks digunakan untuk mendefinisikan sintaks bahasa pemrogramanMenggunakan notasi BNF (Backus-Naur Form)variabel / non terminal : terminal : tanpa tanda diganti dengan ::= Contoh statemen if then else< if_statement> ::= if

  • Terima KasihSelamatBelajar...