Senin, 22 Juli 2013

Teknik Kompilasi - Bottom Up Evaluation

  • Synthesized attribute dievaluasi dengan metode bottom-up parsing.
  • Harga dari synthesized attribute disimpan dalam stack ( extra fields )
  • Pada saat reduksi : Harga yang baru dihitung berdasarkan harga dari symbol yang sudah ada di stack
  • Untuk produksi A ? XYZ : Sebelum reduksi dilakukan evaluasi  terhadap harga X, Y , dan Z.
L-ATTRIBUTE
Syntax directed definition adalah bersifat  L-attribute jika setiap attribute dari produksi A?X1X2......Xn adalah synthesized atau inherited attribute dari Xj yang tergantung hanya pada :

1. Attribute dari simbol X1,X2,...Xj�1 yang terletak disebelah kiri XJ
2. Atribut Inherited dari A Contoh :

S-attribute definition bersifat L-attribute. Syntax directed definition berikut tidak bersifat L-attribute, karena atribut simbol Q tergantung pada atribut simbol R yang terletak disebelah kanannya

TRANSLATION SCHEMES
� Merupakan Context Free Grammar dimana atribut tergabung dengan simbol-simbol grammar dan semantic
action pada sisi kanan dari produksi 
� Semantic action dituliskan diantara braces ( { } )

Contoh :
rest ? + term { print (�+�) } rest1 Parse tree dari produksi tersebut :

 

Contoh translation schemes yang merubah notasi infix menjadi notasi
postfix berikut :
E ? TR
R ? addop T { print (addop.lexeme) } R1 ?e
T ? num {print (num.val)}

TOP-DOWN TRANSLATION
Eliminasi left recursion untuk mentransformasi translation schemes dengan attributes sintetis.
Translation schemes dengan grammar left recursive sebagai berikut :

G: E -> E1 + T { E.val := E1.val + T.val}
E -> E1 � T { E.val := E1.val - T.val}
E -> T { E.val := T.val}
T -> (E) { T.val := E.val}
T -> num { T.val := num.val}
Bila input suatu ekspresi : 9-5+2 maka
translation schemes adalah : 95-2+

 

Tidak ada komentar:

Posting Komentar