Analisis Sintaks Analisis Semantik Kode Antara dan Pembangkitkan

  • Slides: 9
Download presentation
Analisis Sintaks, Analisis Semantik, Kode Antara dan Pembangkitkan Kode

Analisis Sintaks, Analisis Semantik, Kode Antara dan Pembangkitkan Kode

Analisis Sintaks (Parsing) • Parsing merupakan tahapan yang berguna untuk memeriksa urutan kemunculan token.

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

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

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

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

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

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).

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:

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