Lompat ke konten Lompat ke sidebar Lompat ke footer

Parse Tree

Contoh: Grammar sederhana untuk expression:

GE=(T,N,S,R),

di mana T={i,+,-,*,/,(,)},

N={E}

S=E

R = {    E->E+E,

            E->E-E,

            E->E*E,

            E->E/E,

            E->(E),

            E->i };

Cara penulisan grammar tersebut adalah cara penulisan yang lengkap menurut Chomsky,untuk selanjutnya hanya dituliskan bagian produksinya saja.

Dengan menggunakan grammar di atas, dianalisis ekspresi: 

(a+b)/(a-b)

dari penganalisis leksikal diperoleh ekspresi yang berbentuk token (i + i)/(i-i).

Kita mengenal ekspresi di atas adalah pembagian, dengan pembilang (i+i) dan penyebut (i+i). Oleh karena itu produksi yang cocok adalah E ->E/E.

Perhatikan gambar 1 bahwa sisi kiri menjadi induk dan bagian kanan menjadi anak pari parse-tree. 

Selanjutnya, pada gambar 2 karena pembilang dan penyebut adalah ekspresi bertanda kurung maka produksi untuk E adalah E-> (E). 

Ekspresi E yang ada di dalam kurung pertama adalah penjumlahan (gambar 3), maka kita menggunakan produksi E->E+E dan E yang kedua adalah pengurangan digunakan produksi E->E-E, dan E yang terakhir menghasilkan i sehingga digunakan produksi E->i.

parse tree
Parse Tree dan Penurunannya

Parse tree di atas dapat dinyatakan dalam bentuk turunan (derivation) dengan notasi α1 => α2 sebagai berikut:

parse tree turunan

L(G) = { w | S => w } - Bahasa (Language) dengan grammar G adalah himpunan semua string terminal yang dapat diturunkan dari S menggunakan aturan G. Penurunan seperti diatas dapat dilakukan dengan penurunan kanan atau penurunan kiri.


Ambiguous Grammar

Perhatikan ekspresi i+i*i. Ekspresi tersebut mengandung 2 macam arti, yaitu:


Grammar Analisis Sintaktik
Ambiguous Grammar



dari kedua gambar diatas, mana yang benar ?

Untuk mengatasi ambiguitas maka digunakan aturan tambahan, yaitu dengan menggunakan aturan operator-operator preseudence dalam Pascal, atau grammarnya ditulis ulang agar tidak terjadi ambiguitas.

E-> E+E | E-T| T
T->T*F | T/F | F
F -> (E) | i

E menyatakan ekspresi, T menyatakan Term dan F menyatakan Faktor. Dengan demikian grammar tersebut tidak akan membingungkan lagi.



Selanjutnya : Chomsky Hierarchy