Teori Bahasa dan Automata

Slides:



Advertisements
Presentasi serupa
Teori Bahasa dan Automata
Advertisements

Teori Bahasa dan Automata
BENTUK NORMAL CHOMKY.
BENTUK NORMAL CHOMSKY Teori Bahasa dan Otomata
11. BENTUK NORMAL CHOMSKY.
KONSEP dan NOTASI BAHASA
Pertemuan 12 Bentuk Normal untuk Grammar Bebas Konteks
Bentuk Normal Greibach
Normal Chomsky Pertemuan 8
Penyederhanaan Bahasa Bebas Context
Produksi yang rekursif kanan menyebabkan pohon penurunan tumbuh ke
PENGHILANGAN REKURSIF KIRI
12. PENGHILANGAN REKURSIF KIRI
Penghilangan Rekursif Kiri
Bentuk Normal Greibach (Greibach Normal Form)
Teori Bahasa dan Otomata 2 sks
14. PUSH DOWN AUTOMATA.
13. BENTUK NORMAL GREIBACH
TATA BAHASA BEBAS KONTEKS (CONTEXT FREE GRAMMAR)
Teori Bahasa dan Otomata 2 sks
TEORI BAHASA DAN OTOMATA
Pohon penurunan dan Penyederhanaan Tata Bahasa Bebas Konteks
13. BENTUK NORMAL GREIBACH
PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS
10. PENYEDERHANAAN TATA BAHASA
7. ATURAN PRODUKSI.
Analisis Leksikal.
Pertemuan 12 CONTEXT FREE GRAMMAR (CFG) Lanjutan..
14. PUSH-DOWN AUTOMATA.
BAB X BENTUK NORMAL CHOMSKY.
Penghilangan rekursif kiri
12. PENGHILANGAN REKURSIF KIRI Aturan Produksi Rekursif Aturan produksi yang rekursif adalah aturan produksi yang hasil produksinya (ruas kanan)
TEORI BAHASA & AUTOMATA
1 Pertemuan 11 CONTEXT FREE GRAMMAR (CFG) Lanjutan.. Matakuliah: T0162/Teori Bahasa dan Automata Tahun: 2005 Versi: 1/0.
BENTUK NORMAL CHOMSKY Teori Bahasa dan Otomata CHAPTER 6
KONSEP GRAMMAR & HIRARKI CHOMSKY
Teori-Bahasa-dan-Otomata
TEORI BAHASA DAN AUTOMATA TATA BAHASA LEVEL BAHASA
Bentuk Normal Chomsky (CNF)
TEORI BAHASA DAN OTOMATA
PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS
TATA BAHASA BEBAS KONTEKS (CONTEXT FREE GRAMMAR)
Bahasa Type 2 (CONTEXT FREE GRAMMAR)
Bentuk Normal Chomsky, Penghilangan Rekursif kiri dan Normal Greibach
BAB XII BENTUK NORMAL GREIBACH
Bentuk Normal Chomsky *YANI*.
Teori-Bahasa-dan-Otomata
GRAMMER ATAU TATA BAHASA
PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS.
PENGHILANGAN REKURSIF KIRI
Bahasa Context Free.
AP untuk CFG PERTEMUAN KE-12 & 13.
Penghilangan Bentuk Left Linear Grammer
Teori-Bahasa-dan-Otomata
OTOMATA DAN TEORI BAHASA 7
TATA BAHASA BEBAS KONTEKS
BAB VIII POHON PENURUNAN.
Penyederhanaan Tata Bahasa Bebas Konteks
Istiqomah, S.Kom [Teknik Kompilasi UNIKOM 2013]
Penyederhanaan Tata Bahasa Bebas Konteks
Persamaan dan Pertidaksamaan
TEORI BAHASA & AUTOMATA
BENTUK NORMAL GREIBACH
Brute force 2/16/2019 Materi ke 5.
Grammar dan Bahasa Automata
Penghilangan Rekursif Kiri
Chomsky Normal Form (CNF) / Bentuk Normal Chomsky (BNC)
Aturan Produksi untuk CFG
Chomsky Normal Form (CNF) / Bentuk Normal Chomsky (BNC)
OTOMATA DAN TEORI BAHASA.
Transcript presentasi:

Teori Bahasa dan Automata Penghilangan Rekursif Kiri

Aturan Produksi Rekursif Aturan Produksi yang rekursif memiliki ruas kanan (hasil produksi) yang memuat simbol variabel. Aturan Produksi Rekursif Kanan Sebuah aturan produksi dalam bentuk: A  A A : Variabel  :(VT)* atau kumpulan symbol variabel dan terminal Aturan Produksi Rekursif Kiri Aturan produksi dalam bentuk: A  A Contoh: S  Sd B  Bad

Aturan Produksi Rekursif Produksi yang rekursif kanan menyebabkan pohon penurunan tumbuh ke kanan, sebaliknya produksi yang rekursif ke kiri menyebabkan pohon penurunan tumbuh ke kiri. Contoh : tata bahasa bebas konteks dengan aturan produksi: S  aAc A  Ab   S A a b c Pohon penurunan sebuah CFG yang rekursif kiri.

Penghilangan Rekursif Kiri Dalam banyak penerapan tata bahasa, rekursif kiri tak diinginkan. Untuk menghindari penurunan yang bisa mengakibatkan loop hilangkan sifat rekursif kiri dari aturan produksi. Aturan produksi yang tidak rekursif kiri Lakukan penggantian, munculkan aturan produksi baru dan symbol variabel baru CFG bebas dari aturan produksi yang rekursif kiri CFG mengandung aturan produksi yang rekursif kiri Aturan produksi yang rekursif kiri

Penghilangan Rekursif Kiri Steps: Pisahkan aturan produksi yang rekursif kiri dan yang tidak. Aturan produksi yang rekursif kiri diberi simbol n setelah variabel: A  A1  A2  A3  ……..An Aturan produksi yang tidak rekursif kiri (termasuk produksi ) diberi simbol m A  1  2  3 ……..m Lakukan penggantian aturan produksi yang rekursif kiri, menjadi sebagai berikut: A  1Z  2Z  ………mZ Z  1  2  3  ……n Z  1Z  2Z  3Z  ……nZ

Penghilangan Rekursif Kiri Hasil akhir berupa aturan produksi pengganti ditambah dengan aturan produksi semula yang tidak rekursif kiri. Contoh: Lakukanlah penghilangan rekursif kiri untuk tata bahas bebas konteks dibawah: 1. S  Sab  aSc  dd  ff  Sbd 2. S  Sab  Sb  cA A  Aa  a  bd

Contoh 1. Aturan produksi yang rekursif kiri: S  Sab  Sbd Untuk symbol S 1 = ab, 2 = bd Aturan produksi yang tidak rekursif kiri: S  aSc  dd  ff Untuk symbol S 1 = aSc, 2 = dd, 3 = ff

Contoh 1 = ab, 2 = bd & 1 = aSc, 2 = dd, 3 = ff Lakukan penggantian aturan produksi yang rekursif kiri S  Sab  Sbd, digantikan oleh: S  1 Z1  2 Z1  3 Z1

Contoh 1 = ab, 2 = bd & 1 = aSc, 2 = dd, 3 = ff Lakukan penggantian aturan produksi yang rekursif kiri S  Sab  Sbd, digantikan oleh: S  aScZ1  dd Z1  ff Z1 Z1  1  2 Z1  1 Z1  2 Z1

Contoh 1 = ab, 2 = bd & 1 = aSc, 2 = dd, 3 = ff Lakukan penggantian aturan produksi yang rekursif kiri S  Sab  Sbd, digantikan oleh: S  aScZ1  dd Z1  ff Z1 Z1  ab  bd Z1  ab Z1  bd Z1

Contoh 1 = ab, 2 = bd & 1 = aSc, 2 = dd, 3 = ff Lakukan penggantian aturan produksi yang rekursif kiri S  Sab  Sbd, digantikan oleh: S  aScZ1  dd Z1  ff Z1 Z1  ab  bd Z1  ab Z1  bd Z1 Hasil akhir setelah penghilangan rekursif kiri adalah: S  aSc  dd  ff

Contoh 2. Aturan produksi yang rekursif kiri: S  Sab  Sb A  Aa Untuk symbol S  1 = ab, 2 = b Untuk symbol A  1 = a Aturan produksi yang tidak rekursif kiri: S  cA A  a  bd Untuk symbol S  1 = cA Untuk symbol A  1 = a, 2 = bd

Contoh S  1 = ab, 2 = b & 1 = cA A  1 = a & 1 = a 2 = bd Lakukan penggantian aturan produksi yang rekursif kiri S  Sab  Sb, digantikan oleh: S  1 Z1 Z1  1  2 Z1  1 Z1  2 Z1 A  Aa, digantikan oleh: A  1 Z2  2 Z2 Z2  1 Z2  1 Z2

Contoh S  1 = ab, 2 = b & 1 = cA A  1 = a & 1 = a, 2 = bd Lakukan penggantian aturan produksi yang rekursif kiri S  Sab  Sb, digantikan oleh: S  cAZ1 Z1  ab  b Z1  ab Z1  bZ1 A  Aa, digantikan oleh: A  aZ2  bdZ2 Z2  a Z2  aZ2

Contoh Hasil akhir setelah penghilangan rekursif kiri adalah: S  cA A  a  bd S  cAZ1 Z1  ab  b Z1  ab Z1  bZ1 A  aZ2  bdZ2 Z2  a Z2  aZ2

Latihan S  Sa  aAc  c   A  Ab  ba Lakukanlah penghilangan rekursif kiri untuk tata bahas bebas konteks dibawah: S  Sa  aAc  c   A  Ab  ba

Teori Bahasa dan Automata Bentuk Normal Greibach (GNF)

Greibach Normal Form (GNF) Suatu tata bahasa bebas konteks (CFG) dikatakan dalam bentuk normal Greibach (GNF) jika setiap aturan produksinya ada dalam bentuk: A  a a : symbol terminal (tunggal), a T  : rangkaian symbol-simbol variabel (V*) Contoh tata bahasa bebas konteks dalam bentuk normal Greibach: S  a  aAB A  aB B  cS

Greibach Normal Form (GNF) Untuk dapat diubah ke dalam bentuk normal Greibach, tata bahasa semula harus memenuhi syarat: Sudah dalam bentuk normal Chomsky (CNF) Tidak bersifat rekursif kiri Tidak menghasilkan 

Pembetukan GNF Ada 2 cara merubah Tata bahasa bebas konteks menjadi GNF: Substitusi Perkalian Matrix

Pembetukan GNF dengan Substitusi Steps: Tentukan urutan symbol-simbol variabel  A1, A2 ,….. Am Berdasarkan urutan symbol, seluruh aturan produksi yang ruas kanannya diawali dengan symbol variabel dapat dituliskan dalam bentuk Ah  Ai dimana h </> i (rekursif kiri sudah dihilangkan),  berupa symbol-simbol variabel. Jika h < i, aturan produksi ini sudah benar (tidak perlu diubah) Jika h > i, aturan produksi belum benar. Ubah Ai pada produksi ini dengan ruas kanan produksi dari variabel Ai, sehingga diperoleh produksi dalam bentuk: Ah  Ap (dimana h  p) h = p, lakukan penghilangan rekursif kiri h < p, aturan produksi sudah benar

Pembetukan GNF dengan Substitusi Steps - contd: Lakukan penghilangan rekursif kiri bila Ah  Ap (dimana h = p) Lakukan substitusi mundur mulai dari variabel Am, lalu Am-1, Am-2,….Dengan cara ini aturan produksi dalam bentuk Ax  Ay dapat diubah sehingga ruas kanannya dimulai dengan symbol terminal. Variabel baru yg didapat dari penghilangan rekursif kiri diubah dengan cara substusi untuk menjadi GNF

Pembetukan GNF dengan Substitusi Contoh: Ubahlah Tata bahasa bebas konteks berikut (sudah dalam bentuk CNF) ke dalam GNF! S  CA A  a  d B  b C  DD D  AB Jawab: Tentukan urutan symbol variabel  S<A<B<C<D (bebas)  Periksa aturan produksi , apakah sudah memenuhi ketentuan urutan variabel: S  CA ( sudah memenuhi karena S<C) C  DD ( sudah memenuhi karena C<D) D  AB ( tidak memenuhi karena D>A)

(Lakukan substitusi dari kanan ke kiri berdasarkan urutan variabel) Contoh Lakukan substitusi pada symbol variabel A, aturan produksi menjadi: D  AB  D  aB  dB Setelah semua aturan produksi memenuhi ketentuan urutan variabel, lakukan substitusi mundur pada aturan produksi yang belum dalam GNF C  DD  C  aBD  dBD S  CA  S  aBDA  dBDA (Lakukan substitusi dari kanan ke kiri berdasarkan urutan variabel) Hasil akhir aturan produksi dalam GNF: S  aBDA  dBDA A  a  d B  b C  aBD  dBD D  aB  dB

Contoh Ubahlah Tata bahasa bebas konteks berikut (sudah dalam bentuk CNF) ke dalam GNF! A  BC B  CA  b C  AB  a Jawab: Tentukan urutan symbol variabel  A<B<C (bebas)  Periksa aturan produksi , apakah sudah memenuhi ketentuan urutan variabel: A  BC (sudah memenuhi karena A<B) B  CA (sudah memenuhi karena B<C) C  AB (tidak memenuhi karena C>A)

C  AB  C  BCB  C  CACB bCB Contoh Lakukan substitusi pada symbol variabel A, aturan produksi menjadi: C  AB  C  BCB  C  CACB bCB Teradapat Rekursif kiri pada : C  CACB, maka lakukan penghilangan rekursif kiri: C  CACB bCB | a (1 = ACB & 1 = bCB , 2 = a) C  1 Z1  2 Z1 Z1  1 Z1  1 Z1

C  AB  C  BCB  C  CACB bCB Contoh Lakukan substitusi pada symbol variabel A, aturan produksi menjadi: C  AB  C  BCB  C  CACB bCB Teradapat Rekursif kiri pada : C  CACB, maka lakukan penghilangan rekursif kiri: C  CACB bCB | a (1 = ACB & 1 = bCB , 2 = a) C  bCBZ1  aZ1 Z1  ACB Z1  ACB Z1 Variabel C yang sudah dalam bentuk normal Greibach: C  bCB Z1 a Z1 bCB a

B  CA| b  B  bCB Z1A a Z1A bCBA aA | b Setelah semua aturan produksi memenuhi ketentuan urutan variabel, lakukan substitusi mundur pada aturan produksi yang belum dalam GNF B  CA| b  B  bCB Z1A a Z1A bCBA aA | b A  BC  A  bCB Z1AC a Z1AC bCBAC aAC bC (Lakukan substitusi dari kanan ke kiri berdasarkan urutan variabel) Variabel baru yg didapat dari penghilangan rekursif kiri diubah dengan cara substusi untuk menjadi GNF Z1  ACB  Z1  bCB Z1ACCB a Z1ACCB bCBACCB aACCB bCCB Z1  ACB Z1  Z1  bCB Z1ACCBZ1 a Z1ACCBZ1 bCBACCBZ1 aACCB Z1 bCCBZ1 Hasil akhir aturan produksi dalam GNF: A  bCB Z1AC a Z1AC bCBAC aAC bC B  bCB Z1A a Z1A bCBA aA b C  bCB Z1 a Z1 bCB a Z1  bCB Z1ACCB a Z1ACCB bCBACCB aACCB bCCB Z1  bCB Z1ACCBZ1 a Z1ACCBZ1 bCBACCBZ1 aACCB Z1 bCCBZ1  

Latihan 1. 2. Ubahlah Tata bahasa bebas konteks berikut ke dalam GNF (sudah dalam bentuk CNF) ! 1. S  AS | a A  a 2. S AA | d A  SS | b

Pembetukan GNF dengan Perkalian Matriks Kumpulan aturan produksi dapat dianggap sebagai sistem persamaan linear. Contoh: A  BC B  CA  b C  AB  a Dapat dilihat sebagai: A = BC B = CA + b C = AB + a Buat matriks dengan persamaan V = VR + S Dimana (n = banyaknya variable dalam tata bahasa) dan: V = vektor baris 1 x n (berisi simbol2 variabel) R = matriks n x n berisi simbol terminal dan variabel (utk mengganti produksi yg diawali dengan variabel) S = vektor baris 1 x n (berisi simbol terminal utk mengganti produksi yang diawali dengan terminal)

Pembetukan GNF dengan Perkalian Matriks Tentukan V,R dan S. V = [ A B C ] R = 0 0 B C 0 0 0 A 0 A = BC B = CA + b C = AB + a S = [ 0 b a ] Persamaan matriksnya. V = VR + S [ A B C ] = [ A B C ] 0 0 B C 0 0 0 A 0 + [ 0 b a ]

Pembetukan GNF dengan Perkalian Matriks Bentuk Persamaan Matriks Baru V = SQ + S Dimana Q = matriks n x n yang berisi simbol variabel2 baru Q = D E F G H I J K L V = [ A B C ] S = [ 0 b a ] Matriksnya berupa: [ A B C ] = + [ 0 b a ] [ 0 b a ] D E F G H I J K L

Pembetukan GNF dengan Perkalian Matriks Dari hasil perkalian matriks didapat persamaan: A = bG + aJ B = bH + aK + b C = bI + aL + a ……………………………………………………… persamaan (1)

Pembetukan GNF dengan Perkalian Matriks Bentuk Persamaan Matriks Baru Q= RQ + R Dimana Q = matriks n x n yang berisi simbol variabel2 baru Q = D E F G H I J K L R = 0 0 B C 0 0 0 A 0 Matriksnya berupa: D E F G H I J K L 0 0 B C 0 0 0 A 0 + =

Pembetukan GNF dengan Perkalian Matriks Dari hasil perkalian matriks didapat persamaan: D = BJ E = BK F = BL + B G = CD + C H = CE I = CF J = AG K = AH + A L = AI ………………………………………………………… persamaan (2)

Pembetukan GNF dengan Perkalian Matriks Substitusi persamaan (1) ke dalam persamaan (2) D =bHJ + aKJ + bJ E = bHK + aKK + bK F = bHL + aKL + bL + bH + aK + b G = bID + aLD + aD + bI + aL + a H = bIE + aLE + aE I = bIF + aLF + aF J = bGG + aJG K = bGH + aJH + bG + aJ L = bGI + aJI ………………………………………………………… persamaan (3)

Pembetukan GNF dengan Perkalian Matriks Hasil akhir aturan produksi dalam bentuk GNF adalah ( pers1 + pers 3): A = bG + aJ B = bH + aK + b C = bI + aL + a D =bHJ + aKJ + bJ E = bHK + aKK + bK F = bHL + aKL + bL + bH + aK + b G = bID + aLD + aD + bI + aL + a H = bIE + aLE + aE I = bIF + aLF + aF J = bGG + aJG K = bGH + aJH + bG + aJ L = bGI + aJI

Buktikan bahwa string yang sama dapat di hasilkan oleh kedua cara Contoh Ubahlah Tata bahasa bebas konteks berikut ke dalam GNF dengan menggunakan perkalian matriks. (sudah dalam bentuk CNF) ! 1. S AA | d A  SS | b Buktikan bahwa string yang sama dapat di hasilkan oleh kedua cara