- ANALISA LEKSIKAL
Analisa Leksikal merupakan antarmuka antara kode program sumber dan analisa sintaktik (parser). Scanner melakukan pemeriksaan karakter per karakter pada teks masukan, memecah sumber program menjadi bagian-bagian disebut Token.
Dua aspek penting pembuatan Analisa Leksikal adalah :
- Menentukan token-token bahasa.
- Mengenali token-token bahasa dari program sumber.
Tugas – tugas analisa leksikal antara lain :
a.
Melakukan pembacaan kode sumber dengan merunut karakter demi karakter.
b.
Mengenali besaran leksik (identifier,
keywords, dan konstanta).
c.
Mentransformasi menjadi sebuah token dan menentukan jenis tokennya.
d.
Mengirimkan token.
e. Membuang atau mengabaikan white-space
dan komentar dalam
program.
f.
Menangani kesalahan.
g.
Menangani tabel simbol.
- ANALISA SINTAKS
Proses sintaks analisa dilakukan terhadap descriptor dari analisa leksikal untuk menentukan struktur sintaks dari input statement. Proses tersebut dikenal dengan nama “Parsing”.
Output dari Parsing adalah representasi dari struktur sintaks suatu statement.
Representasinya digambarkan melalui sintaks tree.
Contoh statement a:=b+i , direpresentasikan ke dalam tree :
Sintaks error seperti hilangnya operator / operand bisa ditemui dalam sintaks analisis
- ANALISA SEMANTIK
Analisa semantik
memanfaatkan pohon sintaks yang dihasilkan pada proses parsing (analisa
sintaks). Fungsi dari analisa semantik adalah untuk menentukan makna dari
serangkaian instruksi yang terdapat dalam program sumber. Untuk mengetahui
makna, maka rutin analisa semantik akan memeriksa :
• Apakah variabel yang ada telah didefinisikan sebelumnya,
• Apakah variabel – variabel tersebut tipenya sama,
• Apakah operan yang akan dioperasikan tersebut ada nilainya dan seterusnya.
Untuk dapat menjalankan fungsi tersebut dengan baik, semantic
analyzer seringkali menggunakan tabel simbol. Pemeriksaan bisa dilakukan pada tabel
identifier, tabel display dan tabel blok, misal pada field link.
Pengecekan yang dilakukan oleh analisis semantik adalah :
▫
Memeriksa keberlakuan nama – nama meliputi pemeriksaan :
- Duplikasi
Pengecekan apakah sebuah nama terjadi pendefinisian lebih dari dua kali. Pengecekan dilakukan pada bagian pengelola blok.
- Terdefinisi
Pengecekan apakah sebuah nama yang dipakai pada tubuh program sudah terdefinisi atau belum. Pengecekan dilakukan pada semua tempat kecuali blok.
▫Memeriksa tipe
Melakukan pemeriksaan terhadap kesesuaian tipe dalam statement –
statement yang ada. Misal : Bila ada operasi antara dua operan, maka tipe operan pertama harus bisa dioperasikan dengan operan kedua
- KODE ANTARA
Kode antara/Intermediate
Code merupakan hasil dari tahapan analisis,
yang dibuat oleh kompilator pada saat mentranslasikan
program dari bahasa tingkat tinggi. Kegunaan dari Kode Antara /
intermediate code :
-Untuk memperkecil usaha dalam membangun kompilator dari sejumlah bahasa ke sejumlah mesin
-Proses optimasi lebih mudah. (dibandingkan pada program sumber atau kode assembly
dan kode mesin)
-Bisa melihat program internal
yang gampang dimengerti.
Terima kasih atas tulisannya, namun saya juga memerlukan sumber tulisan yang ibu buat sebagai bahan referensi tugas saya, kiranya ibu berkenan menambahkan sumber tulisan ini lain waktu... Mohon maaf bila ucapan saya tidak berkenan
BalasHapusDerist Touriano
www.touriano.com
http://datamatkul.blogspot.com/
terimakasih pak... sumbernya :
HapusIwan Binanto, 2005, Konsep Bahasa Pemrograman : Penerbit Andi.
semoga bermanfaat