Jumat, 06 April 2012

Teknik Kompilasi dan Bahasa Sumber

Teknik Kompilasi
Latihan mata kuliah Teknik Kompilasi dalam rangka pra UTS dan pelatihan pemahaman atas materi yang telah disampaikan.. 
- Apa yang dimaksud Kompilasi ? Apa gunanya?
- Apa yang dimaksud dengan Interpreter dan Compiler dan apa ciri-cirinya?
- Jelaskan fase - fase proses sebuah kompilasi?
- Apa yang dimaksud dengan Bahasa Mesin dan Bahasa Tingkat Tinggi?
- Sebutkan ciri dari bahasa Tingkat Tinggi !
- Bagaimana skenario perancangan sebuah aplikasi?

Jawaban 

- Kompilasi merupakan suatu proses penggabungan dan penerjemahan suatu kode source program  menjadi bentuk lain dengan melakukan translator.

- Interpreter merupakan sebuah program yang mengeksekusi intruksi yang ditulis dalam bahasa pemograman tingkat tinggi, dimana cirinya : program ini tidak dapat membangkitkan object code yang dihasilkan hanya dalam bentuk internal, source code dan data harus diproses dalam waktu yang bersamaan,  program ini tidak perlu dikompilasi untuk dijalankan, namun memakan waktu jika deret program yang olah panjang dan keberadaan program induk harus selalu ada.
  Compiler merupakan program yang membaca suatu program yang dituliskan ke dalam bahasa sumber atau source language dan program ini akan menerjemahkan source tersebut kedalam suatu bahasa sasaran atau target language. Cirinya : menggunakan source code bahasa tingkat tinggi, menghasilkan kode antara dan harus dilink menjadi bentuk yang dapat dijalankan mesin, source code dan data tidak perlu diproses dalam waktu yang bersamaan, menghasilkan suatu object program atau error message, terdapat dua tahapan proses yaitu tahap parsing dan tahap linking, namun tidak cocok untuk modul/ sub-routine, atau program kecil karena adanya tahapan tersebut. 

- Bahasa Mesin merupakan bentuk terendah dari bahasa komputer, disebut juga kode mesin, yaitu seperangkat intruksi dan data yang dieksekusi secara langsung oleh prosesor komputer. Bahasa ini biasanya digunakan sebagai tujuan kompilasi oleh kompiler pada bahasa pemograman lain dalam tingkat yang lebih tinggi.
  dan Bahasa Tingkat Tinggi merupakan bahasa yang lebih banyak memberikan fungsi kontrol program, kalang blok, dan prosedur. Diistilahkan juga sebagai bahasa komputer, adalah suatu intruksi standar untuk memerintahkan komputer yang merupakan himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan komputer, bagaimana memproses data, dan jenis langkah apa secara persis tang diambil dalam suatu situasi. Bahasa ini memakai intruksi yang berasal dari unsur kata bahasa manusia, seperti begin, end, if, dan sebagainya

- Fase - fase proses sebuah kompilasi terlihat dalam gambar :

   Berikut merupakan hal yang dilakukan oleh setiap fase terhadap program sumber :
  1. Penganalisa Leksikal => tahap pembacaan program sumber, karakter demi karakter, dimana karakter membentuk token lexeme yang akan di simpan dalam tabel simbol. 
  2. Pengalisa Sintaks => tahap pemeriksaan kesesuaian pola deretan token dengan aturan sintaks yang ditemukan dalam bahasa sumber. Bila sesuai akan dinyatakan sebagai parsing tree, jika tidak akan dilaporkan sebagai sintaks error.
  3. Penganalisa Semantik => tahap pemeriksaan token dan ekspresi dari batasan yang ditetapkan, seperti batasan panjang maksimum token identifier, panjang maksimum ekspresi tunggal, nilaic bilangan, operasi aritmatika.
  4. Pembangkit Kode Antara => tahap pembangkitkan kode antara (intermediate code) berdasarkan parsing tree, yang selanjutkan akan diterjemahkan oleh penerjemah berdasarkan sintaks. Menghasilkan three-address code.
  5. Pengoptimal Kode => tahap untuk melakukan optimasi terhadap kode antar, seperti penghematan space dan waktu kompilasi.
  6. Pembangkit Kode => tahap untuk membangkitkan kode ke dalam bahasa target tertentu.
- Ciri dari bahasa Tingkat Tinggi, yaitu :
  • bahasa lebih dikenali manusia
  • bahasa didefiniskan dengan menentukan bentuk sintaks dan semantik-nya
  • memberikan fasilitas yang lebih banyak, seperti struktur kontrol program terstruktur, serta prosedur
  • program mudah dikoreksi
  • program tidak tergantung salah satu mesin
  • terdapat struktur kontrol, seperti kondisi, perulangan, dan struktur blok

- Bagaimana skenario perancangan sebuah aplikasi?
  1. Menentukan program seperti apa yang diinginkan,
  2. Menentukan feature yang mendukung program,
  3. Menentukan desain yang disesuaikan dengan featurenya,
  4. Menentukan rincian, parsing, dan error checking dari program tersebut,
  5. Menuliskan user manual dan help,
  6. Mengevaluasikan langkah diatas, jika masih ada kesalahan, ulangi dari langkah 3,
  7. Jika evaluasi telah menyatakan program telah benar, lakukan optimalisasi program dan pengujian segala kemungkinan yang dapat terjadi dalam program,
  8. Melakukan pengetesan terhadap reaksi pengguna atas program tersebut, 
  9. Memperbaiki bug dan memulai dengan versi yang lebih baru dan lebih maju,

Sebenernya ada 2 soal lagi, tapi lupa, hehe.. soalnya yang disuruh ngerjain cuma lima soal aja sih... :) semoga bermanfaat
sumber : PPT dosen, wikipedia.com, technogetz.wordpress.com

2 komentar:

  1. mau tanya nie... mklum msh neubie....
    nah kalau bahasa seperti Assembler itu pke teknik kompilasi seperti apa yah.... soalnya kan dia merupakan bahasa tingkat rendah... ???

    BalasHapus
    Balasan
    1. sepemahaman saya, Assembler itu kan bentuk simbolik dari bahasa mesin,jadi translatornya ke bentuk bahasa mesin.. klo pake teknik kompilasi seperti apa, kurang tau dah.. coba nanti saya tanyain dulu sama pak dosen..

      Hapus

jangan lupa beri komentar dan join blognya yaa :)