Jumat, 19 Desember 2008

Proses Kompilasi dan Linking Program Bahasa C

Agar suatu program dalam bahasa pemrograman dapat dimengerti oleh
komputer, program haruslah diterjemahkan dahulu ke dalam kode mesin. Adapun
penerjemah yang digunakan bisa berupa interpreter atau kompiler.
Interpreter adalah suatu jenis penerjemah yang menerjemahkan baris per baris
intsruksi untuk setiap saat. Keuntungan pemakaian interpreter, penyusunan program
relatif lebih cepat dan bisa langsung diuji sekalipun masih ada beberapa kesalahan
secara kaidah dalam program. Sedangkan kelemahannya, kecepatannya menjadi
lambat sebab sebelum suatu instruksi dijalankan selalu harus diterjemahkan terlebih
dahulu. Selain itu, saat program dieksekusi, interpreter juga harus berada dalam
memori. Jadi memori selalu digunakan baik untuk program maupun interpreter. Di
samping itu, program sumber (source program) yaitu program aslinya tidak dapat
dirahasiakan (orang lain selalu bisa melihatnya).


Kebanyakan versi C yang beredar di pasaran menggunakan penerjemah berupa
kompiler. Kompiler merupakan jenis penerjemah yang lain, dengan cara kerjanya yaitu
menerjemahkan seluruh instruksi dalam program sekaligus. Proses pengkompilasian
ini cukup dilakukan sekali saja. Selanjutnya hasil penerjemahan (setelah melalui
tahapan yang lain) bisa dijalankan secara langsung, tanpa tergantung lagi oleh program
sumber maupun kompilernya. Keuntungannya, proses eksekusi dapat berjalan dengan

cepat, sebab tak ada lagi proses penerjemahan. Di samping itu, program sumber bisa
dirahasiakan, sebab yang dieksekusi adalah program yang sudah dalam bentuk kode
mesin. Sedangkan kelemahannya, proses pembuatan dan pengujian membutuhkan
waktu relatif lebih lama, sebab ada waktu untuk mengkompilasi (menerjemahkan) dan
ada pula waktu melakukan proses linking. Perlu pula diketahui, program akan berhasil
dikompilasi hanya jika program tak mengandung kesalahan secara kaidah sama sekali.
Proses dari bentuk program sumber C (source program, yaitu program yang
ditulis dalam bahasa C) hingga menjadi program yang executable (dapat dieksekusi
secara langsung) ditunjukkan pada Gambar 1.1 di bawah ini.
Gambar 1.1 Proses Kompilasi-Linking dari program C
EDITOR EDITOR
FILE INCLUDE
(FILE JUDUL)
xxx.h
FILE PROGRAM
SUMBER
yyy.c
KOMPILER
FILE OBYEK
LAIN
LINKER
FILE
EXECUTABLE
FILE PUSTAKA FILE OBYEK
(library file)
Keterangan Gambar :
􀂃 Pertama-tama program C ditulis dengan menggunakan editor. Program ini
disimpan dalam file yang disebut file program sumber (dengan ciri utama memiliki
ekstensi .c).
􀂃 File include (umumnya memiliki ekstensi .h, misalnya stdio.h, atau biasa disebut
dengan file judul (header file)) berisi kode yang akan dilibatkan dalam program C
(Pada program tertentu bisa saja tidak melibatkan file include).
􀂃 Berikutnya, kode dalam file program sumber maupun kode pada file include akan
dikompilasi oleh kompiler menjadi kode obyek. Kode obyek ini disimpan pada file
yang biasanya berekstensi .obj, atau .o (bergantung kepada
lingkungan/environment sistem operasi yang dipakai). Kode obyek berbentuk kode
mesin, oleh karena itu tidak dapat dibaca oleh pemrogram. Akan tetapi kode ini
sendiri juga belum bisa dipahami komputer.
􀂃 Supaya bisa dimengerti oleh komputer, maka kode obyek bersama-sama dengan
kode obyek yang lain (kalau ada) dan isi file pustaka (library file, yaitu file yang
berisi rutin untuk melaksanakan tugas tertentu. File ini disediakan oleh pembuat
kompiler, biasanya memiliki ekstensi .lib) perlu dikaitkan (linking) dengan
menggunakan linker, membentuk sebuah program yang executable (program yang
dapat dijalankan/dieksekusi secara langsung dalam lingkungan sistem operasi).
􀂃 Program hasil linker ini disimpan dalam file yang disebut file executable, yang
biasanya berekstensi .exe.

Tidak ada komentar:

Posting Komentar

pesan


ShoutMix chat widget