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
thanks mas brow.....
BalasHapus