Analisis Sintaks Analisis Semantik Kode Antara dan Pembangkitkan
Analisis Sintaks, Analisis Semantik, Kode Antara dan Pembangkitkan Kode
Analisis Sintaks (Parsing) • Parsing merupakan tahapan yang berguna untuk memeriksa urutan kemunculan token. • Parsing adalah konsturksi atau pembentukan Pohon Sintaks untuk suatu kalimat (ekspresi). • Pohon Sintaks menggambarkan bagaimana memperoleh suatu string (menurunkan simbol var iabel menjadi simbol terminal). • Bila terdapat lebih dari satu pohon sintaks untuk sebuah grammar maka dikatakan grammar tersebut Ambiguous.
Metode Parsing • Dua cara melakukan validitas sintaks dengan parsing yaitu : 1. TOP DOWN Parsing : melakukan penelusuran dari root/puncak menuju leaf/daun (S – T) Meliputi Brute Force dan Recursive Descent Parser 2. BOTTOM UP Parsing : melakukan penelusuran dari leaf menuju root/puncak.
Analisis Semantik • Pada tahapan ini dilakukan pengecekan pada struktur akhir yang telah diperoleh dan diperiksa kesesuaiannya dengan komponen program yang ada. • Memanfaatkan pohon sintaks yang dihasilkan pada proses parsing. Analisis Semantiks berarti menentukan makna dari serangkaian instruksi yang terdapat dalam program sumber.
Untuk mengetahui Makna, maka dilakukan pemeriksaan: • Apakah variabel yang ada telah didefinisikan sebelumnya (keberlakuan nama-nama), pemeriksaan duplikasi dan terdefinisi. • Apakah variabel-variabel tersebut tipenya sama, jika ada operasi dua operan maka tipe operan 1 harus bisa dioperasikan dengan operan 2. • Apakah operan yang akan dioperasikan tersebut ada nilainya dan seterusnya.
Kode Antara • Kode antara/ Intermediate Code merupakan hasil dari tahapan analisis, yang dibuat oleh kompilator pada saat mentranslasikan program dari bahasa tingkat tinggi. • Kegunaan; memperkecil usaha dalam membangun kompilator dari sejumlah bahasa ke sejumlah mesin lainnya, proses optimasi lebih mudah dari pada langsung dari program sumber, bentuk kode antara ini jauh lebih mudah dipahami. • Kerugian; melakukan 2 kali translasi sehingga butuh waktu yang relatif lama.
Macam Kode Antara: • Notasi Postfix; Notasi Infix (letak operator di tengah). Pada Postfix operator diletakan paling akhir disebut juga notasi sufix. Sintaks notasi Postfix: <operan><operator> • Notasi N- Tuple (notasi beberapa tupel) Format umum: operator…. . N-1 operan
Pembangkitan Kode • Hasil dari analisis akan diterima oleh bagian pembangkitan kode (Code Generator). Di sini kode antara dari program biasanya ditranslasikan ke bahasa assembly atau bahasa mesin.
Contoh Perjalanan Instruksi Program Sumber: X: =Y+X Analisis Leksikal Analisis Sintaksis Token-token Id 1: =Id 2+Id 1 <assign> id 1 LDA X ADD Y STO X analisis semantik dan Kode Antara Pembangkit Kode Tabel Simbol : = <expr> Id 2 + Id 1
- Slides: 9