TATA BAHASA REGULER Sulistyo P Sumber http www
TATA BAHASA REGULER Sulistyo P Sumber: http: //www. cs. rpi. edu/courses/spring 05/modcomp/ 1
Tata Bahasa Linier (Linear Grammars) Grammar dengan paling banyak 1 variabel di sisi kanan produksi Examples: Sisi kanan Sisi kiri {a, b} = alfabet produksi 2
Tata bahasa Non-Linear Grammar : Banyaknya untai pada untai 3
Contoh Grammar Linear Grammar : 4
Tata bahasa Linier Kanan (Right-Linear Grammars) All productions have form: or Untai terminal Contoh: 5
Tata Bahasa Linier Kiri (Left-Linear Grammars) All productions have form: or Untai terminal Example: 6
DEFINISI TATA BAHASA secara formal • Tata bahasa (grammar) G adalah tuple ( N , Σ , P , S ) N = himpunan variabel (nonterminal) Σ = himpunan terminal (alfabet) P = Himpunan hingga aturan produksi (production rules), berupa fungsi ( Σ ∪ N )* N ( Σ ∪ N )* → ( Σ ∪ N )* S N = simbol awal/start symbol/ sentence symbol. • Disebut juga rewriting system / phrase structure grammar 7
Tata Bahasa Reguler (Regular Grammars) 8
TATA BAHASA REGULAR Tata bahasa reguler adalah suatu tata bahasa linier kanan atau kiri Contoh: 4 tuple G 2 =({S, A, B}, {a, b}, P 2 , S) P 2: 9
PENGAMATAN Tata bahasa Regular membentuk bahasa regular Contoh 10
Regular Grammars Generate Regular Languages 11
Teorema Bahasa yang dibentuk Regular Grammars Bahasa Regular 12
Teorema - Part 1 Bahasa yang dibentuk tatabahasa Regular Bahasa Regular Setiap grammar regular membentuk bahasa regular 13
Teorema - Part 2 Bahasa yang dibentuk tatabahasa Regular Bahasa Regular Setiap bahasa reguler dibentuk oleh tata bahasa regular 14
Proof – Part 1 Languages Generated by Regular Grammars Regular Languages The language generated by any regular grammar is regular 15
Kasus Tata bahasa linier Kanan Jika be a right-linear grammar Aka dibuktikan : Proof idea: Buat NFA sehingga regular sedemikian 16
Contoh suatu tata bahasa linier kanan G: 17
Buat NFA sedemikian sehingga setiap state adalah variabel special final state 18
Tambah ruas disetiap produksi 19
20
21
22
23
24
NFA Grammar 25
Secara umum Tata bahasa linier kanan (A right-linear grammar) Dengan variabel: dan produksi: atau 26
Dapat dibaut NFA Setiap varabel sedemikian sehingga: state: Tambah state khusus untuk final state 27
Setiap produksi: Buat transisi dari state variabel sisi kiri dengan label sesuai dengan terminal (anggota alfabet) pada produksi tersebut ke state variabel akhir untai sisi kanan ……… 28
Produksi berbentuk: Tambahkan transisi dan state akhir ……… 29
Resulting NFA looks like this: It holds that: 30
KASUS TATA BAHASA LINIER KIRI Untuk left-linear grammar Akan dibuktikan : regular Proof idea: Dibuktikan dengan membuat grammar linier kanan sedemikian sehingga, bahasa yang dibentuk grammar linier kiri 31
Karena left-linear grammar, maka produksinya berbentuk: 32
Bentuk right-linear grammar Left linear Right linear 33
Construct right-linear grammar Left linear Right linear 34
: Karena Regular Language is right-linear, berarti: Regular Language 35
Proof - Part 2 Bahasa yg dibentuk Grammar Regular Setiap bahasa regular leh regular grammar Regular Languages dapat dibentuk 36
Setiap bahasa regular grammar dapat dibentuk dari Proof idea: Jika NFA Buat dari regular grammar Sedemikian sehingga 37
Karena regular maka terdapat NFA sedemikian sehingga Contoh: 38
Mengubah ke grammar right-linear 39
40
41
42
In General Untuk setiap transisi: Buat produksi: variable terminal variable 43
Untuk setiap final state: Tambahkan produksi: 44
Karena right-linear grammar juga regular grammar dengan 45
- Slides: 45