dilarang klik kanan

Kamis, 29 Desember 2011

KOMPILER


3.1. Aspek Kompilasi
Bertahun tahun pemrograman bahasa tingkat tinggi (high level languange-HLL) telah dikenal luar di lingkungan pemrograman komputer karena kemudahan dalam pembuatannya. Beberapa tahun terakhir ada dua faktor yang menjadi perhatian dalam pengembangan program, yaitu : protabilitas dan pemeliharaan program. Seperti diketahui komputer tidak ‘mengenal’ HLL, sehingga diperlukan suatu konversi ke dalam bahasa mesin.
Compiler adalah suatu program yang melakukan proses translasi dari HLL ke dalam bahasa mesin di komputer. Disamping program translasi, compiler juga mempunyai beberapa fungsi penting, seperti diagnostik, contohnya kemampuan pendeteksian error/kesalahan. Pelannggaran spesifikasi HLL akan terdeteksi dan dilaporkan kepada programmer oleh compiler agar seger diperbaiki hingga mempermudah pembentukan machine language equivalent.
Dari penjelasan di atas terlihat bahwa tugas dari compiler adalah :
(i) melakukan translasi dari HLL program sebagai input (source program) ke dalam equivalent machine language program.
(ii) Menghasilkan pesan hasil diagnostik kepada programmer bila terjadi penyimpangan spesifikasi HLL(source language).

3.1.1. Assembler dan Compiler
Assembler adalah translator untuk bahasa tingkat rendah (low level language –LLL), sedangkan compiler adalah translator untuk HLL. Suatu bahasa assembly memiliki ciri khas dari komputer yang digunakannya, berbeda dengan HLL yang tidak tergantung dari jenis mesin (machine independent). Perbedaan lain, bahasa assembly menurunkan sifat arsitektur komputer yang digunakannya, sedangkan HLL membuat feature arsitekturnya sendiri. Feature arsitektur dari HLL dapat dilihat dari beberapa komponen yang dibutuhkan saat pemrograman dilakukan, yaitu :
- Tipe Data

Pada kebanyakan bahasa assembly, programmer diijinkan untuk menggunakan dan memanipulasi data yang memiliki tipe data berbeda dalam program. Programmer harus memilih dan menggunakan insruksi mesin secara tepat untuk memanipulasi data dengan perbedaan tipe data tadi. Hal ini menyulitkan programmer, karena tidak ada pengecekan dari assembler untuk memverifikasi apakah instruksi yang digunakan tersebut compatibled engan tipe data.
Pada HLL terdapat pelindung terhadap integritas tipe data. Kompatibilitas operator dan operand akan dicek oleh compiler dan bila perlu dilakukan pemaksaan operasi. Karenanya bisa saja nanti ditemukan pesan ‘no invalid operator’ pada data. Untuk itu compiler harusmemiliki kemampuan untuk memilih urutan yang tepat dari instruksi mesin dalamhal penggunaan tipe data yang berbeda.
Contoh : x, y : real;
I, j : integer ;
y := 10 ;
x := y + i
Dari contoh di atas terlihat bahwa ketika melakukan eksekusi statement pertama, compiler harus menyadari bahwa y adalah real, karenanya perlu dilakukan konversi ‘10’ dari representasi integer menjadi floating point. Pada eksekusi statement kedua dilakukanoperasi penambahan yang sebenarnya tidak dapat dilakukan karena y adalah variabel real dan i variable integer. Operasi tersebut bisa dilakukan apabila i di konversi ke dalam real.

Selengkapnya bisa didownload DISINI
print this page Print halaman ini

1 komentar: