Langsung ke konten utama

Mengkompilasi Program Bahasa C

Bahasa C adalah bahasa pemrograman tingkat tinggi dan membutuhkan kompilator untuk mengkonversi bahasa program tersebut hingga menjadi kode yang dapat dieksekusi sehingga program dapat dijalankan pada komputer.

Bagaimana cara melakukan kompilasi program dalam bahasa C?
Berikut adalah tahapan yang digunakan pada Ubuntu dengan kompilator gcc.

satu, Ciptakan program bahasa C dengan menggunakan teks editor kemudian simpan dengan nama filename.c
$ vi filename.c

dua, Lakukan kompilasi program dengan menggunakan perintah berikut.
$ gcc -wall filename.c -o filename

Pilihan -Wall memungkinkan semua pesan warning pada kompilator. Bentuk pilihan ini sangat direkomendasikan untuk menghasilkan program yang baik. Pilihan -o digunakan untuk menentukan output nama file. Jika option ini digunakan, maka output file dengan nama a.out akan di-generate.

tiga, Setelah eksekusi kompilasi program di-generate, selanjutnya program eksekusi dijalankan dengan menggunakan perintah berikut ini.

$ ./filename

Apa yang terjadi ketika dilakukan kompilasi program?
Kompilator mengkonversi program dalam bahasa C menjadi program yang dapat dieksekusi. Terdapat empat fase untuk program bahasa C yang dapat menjadi program eksekusi:
satu, Preprocessing,
dua, Compilation,
tiga, Assembly,
empat, Linking

Dengan mengeksekusi perintah berikut, didapatkan segala intermediate file pada direktori saat ini bersamaan dengan program eksekusi.
$gcc -wall -save -temp filename.c -o filename

Perhatikan satu-persatu dari rincian file yang dihasilkan dari proses kompilasi program.

satu, Preprocessing
Pada fase pertama semua kode program akan dilewatkan. Pada fase ini terjadi beberapa tahapan:
satu, Penghapusan komentar.
dua, Perluasan dari macro.
tiga, Perluasan dari file include.
empat, Kondisional kompilasi.

Kemudian preprosessing output hasilnya akan disimpan pada filename.i. Sumber file memiliki banyak sekali info, tetapi pada akhir, kode program yang telah dibuat tersebut juga telah disimpan.

dua, Kompilasi program
Fase selanjutnya adalah melakukan kompilasi program filename.i. Output kompilasi intermediet file dari file filename.s. File merupakan suatu assembly pada tingkat perintah.

tiga, Assembly
Pada fase ini filename.s diambil sebagai input untuk dijadikan filename.o oleh assemblerFile yang dihasilkan mengandung instruksi perintah pada level mesin. Pada fase ini, hanya kode yang terdapat dalam file yang dikonversi menjadi bahasa mesin, fungsi pemanggilan seperti printf() tidak akan dieksekusi lagi.

empat, Linking
Fase terakhir yang dilakukan adalah menghubungkan semua fungsi yang dipanggil dengan definisinya masing-masing. Linker dapat mengetahui segala fungsi yang diimplementasikan. Linker melakukan beberapa kerja ekstra, seperti penambahan beberapa kode tambahan pada program yang dibutuhkan ketika program dimulai dan diakhiri. Contohnya, terdapat kode program yang dibutuhkan untuk pengaturan lingkungan seperti perintah melewatkan baris argumen. Tugas ini dapat dengan mudah diverifikasi dengan menggunakan $size filename dan $size filename.o. Sepanjang pemakaian perintah tersebut diketahui bagaimana file output meningkat dari object file menjadi file eksekusi. Hal ini dikarenakan kode tambahan yang diberikan linker terhadap program.

catatan: Bahwa gcc secara otomatis melakukan linking dinamis, sehingga printf() secara dinamis dihubungkan pada program.

Komentar

  1. Apa yang dimaksud dengan kompilasi program pada bahasa pemrograman?

    BalasHapus
    Balasan
    1. Kompilasi adalah proses mengubah kode sumber menjadi kode objek. Pada proses kompilasi bahasa C terjadi pengubahan kode sumber yang diambil sebagai input ke dalam kode objek atau kode mesin. Proses kompilasi program dapat dibagi menjadi empat tahapan, yaitu pra pemrosesan, kompilasi, perakitan, dan penautan atau linking.

      Hapus
  2. Kompilasi merupakan proses transformasi dari kode sumber program yang dapat dibaca oleh manusia, menjadi kode mesin yang hanya dapat dibaca oleh komputer. Kompilator mengambil kode sumber untuk dibuat ke dalam program baru dalam bahasa tingkat tinggi dan kemudian mengubah kode tersebut menjadi bahasa baru yang hanya dapat dipahami oleh mesin itu sendiri.

    BalasHapus
  3. Kenapa bahasa c disebut dengan bahasa kompilator?

    BalasHapus
    Balasan
    1. Karena bahasa C merupakan bahasa pemrograman yang dapat dikompilasi oleh mesin atau komputer. Dimana ketika seorang programmer menulis kode program dalam bahasa C, maka kompilator C dapat mengubah kode program yang telah dibuat tersebut menjadi dapat dieksekusi oleh mesin sehingga mesin atau komputer dapat memahami dan menjalankan program tersebut.

      Hapus

Posting Komentar

Respon komentar 7 x 24 jam, so please be patient :D