Minggu, 11 Desember 2022

Syntax Directed Translation (SDT)

 Syntax Directed Translation


Sintak mendifinisikan suatu bentuk program yang benar dari suatu bahasa. Syntax Directed Translation adalah suatu urutan proses yang mentranslasikan parse tree menjadi kode antara.  SDT ini memberikan spesifikasi tingkat tinggi untuk translation. Ia juga menyembunyikan banyak detail implementasi seperti, urutan evaluasi tindakan semantik dan juga mengaitkan aturan produksi dengan serangkaian tindakan semantik, dan tidak mengetahui kapan akan dievaluasi.
Tranlation schemes merupakan grammar yang bebas konteks yang dimana atribut dikaitkan dengan simbol grammar dan tindakan semantik yang terlampir diantara tanda kurung ({}) disisipkan di sisi kanan produksi. misalnya,  A → {...} x{...} y{...} disebut dengan aksi semantik.

Karakteristik utama dari translation scheme adalah :
1) untuk setiap grammar kalimat yang mendasarinya, parse tree(dengan atribut dan semantic rules) dibangun. 
2) grafik yang ketergantungan tidak dihitung. Ketika merancang translation scheme, beberapa batasan harus diperhatikan untuk memastikan bahwa nilai atribut tersedia saat tindakan semantik merujuk ke atribut tersebut. Pembatasan ini memastikan bahwa tindakan semantik tidak merujuk ke atribut yang belum dihitung. 

Top-down:
dalam top-down parsing parse tree dihasilkan dari atas ke bawah, yaitu dari root ke leaf dan diperluas hingga semua leaf dihasilkan. hal ini menghasilkan parse tree yang berisi root sebagai simbol awal grammar untuk memulai derivasi dari simbol awal grammar dan melakukan derivasi paling kiri di setiap langkah. 
Bottom-up :
Bottom-up parsing dapat direpresentasikan sebagai upaya untuk mengurangi string input ω ke simbol awal grammar dengan menemukan derivasi paling kanan dari ω secara terbalik. Dengan membuat parse tree untuk string input ω dengan memulai dari leaf dan berlanjut ke root.

L-attributes grammar adalah jenis grammar atribut khusus. pada atribut ini mereka mengizinkan atribut untuk dievaluasi dalam satu transversal kiri ke kanan dari syntax directed definition depth pertama. Sehingga, evaluasi atribut dalam grammar yang dikaitkan dengan L-attribute bisa digabungkan dengan mudah dalam parsing top-down

S-attribute merupakan sebuah kelas atribut grammar yang ditandai dengan tidak mempunyai inherited atribut, tetapi memiliki synthesized atribut. Inherited atribut harus diturunkan dari node parent ke node child dari abstract syntax tree selama analisis semantik dari proses parsing. Masalah untuk parsing bottom-up karena dalam parsing bottom-up, node parent dari abstract syntax tree. Evaluasi atribut ini dapat digabungkan dengan mudah ke dalam parsing top-down dan bottom-up parsing.


Contoh Soal :
Diketahui : :
  • X : 9 - 5 + 2
  • grammar Q = {E → E + T | E - T | I, T → 0|1|2|...|9
Penyelesaian :