Senin, 12 Maret 2012

Tahap Analisa (Fase Analysis)

  • 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.
       
   Tugastugas 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 namaParsing”.
    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 variabelvariabel 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.
 

2 komentar:

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

    Derist Touriano
    www.touriano.com
    http://datamatkul.blogspot.com/

    BalasHapus
    Balasan
    1. terimakasih pak... sumbernya :
      Iwan Binanto, 2005, Konsep Bahasa Pemrograman : Penerbit Andi.

      semoga bermanfaat

      Hapus