People Innovation Excellence
 
Feature Image

Proses Kompilasi GCC (GCC Compilation Process)

Compiler adalah sebuah program yang dibuat untuk membaca sebuah sumber program yang ditulis dalam bahasa tertentu (source language: misalnya bahasa pemrograman C) dan menerjemahkannya ke dalam bahasa lainnya (target language: misalnya bahasa Assembly).

Bagaimana sebuah program dapat dieksekusi dan dapat dilihat hasilnya? Salah satu komponennya adalah Compiler, namun disamping itu ada juga Pre-processor, Assembler, dan Linker. Tahapan dari sistem tersebut adalah sebagai berikut:

gambar 1. Language processing system

Beberapa fungsi dari pre-processor diantaranya adalah macro processing dan file inclusion. Pada awalnya program yang dibuat oleh programmer akan diolah oleh pre-processor dan hasilnya akan dibaca oleh compiler untuk dihasilkan ke target program. Jika target program yang dibuat adalah Assembly language, maka proses berikutnya adalah assembler yang akan bertugas untuk membaca file assembly tersebut dan mengubahnya ke dalam bentuk relocatable machine code. Linker akan mengubah file relocatable machine code tersebut kedalam absolute machine yang dapat dieksuksi dan menampilkan hasil dari program tersebut.

Untuk memberikan gambaran proses tersebut maka kita dapat melihat contoh berikut ini. Misalkan kita memiliki sebuah file bernama “Hello.c” yang berisi program sederhana dalam bahasa pemrograman C.

gambar 2. Contoh program C dalam file “Hello.c”

Untuk memanggil compiler maka kita dapat menggunakan perintah $gcc -S Hello.c dimana GCC adalah kepanjangan dari GNU Compiler Collection.

gambar 3. pemanggilan compiler

Dapat dilihat pada gambar 3, pada awalnya di directory ~/Projects/CompilerExample hanya ada file Hello.c. Setelah dilakukan kompilasi maka akan dihasilkan sebuah file assembly, dimana dalam contoh ini file yang dihasilkan adalah Hello.s. Contoh file assembly yang dihasilkan dapat dilihat pada gambar 4.

gambar 4. Hasil kompilasi ke assembly sebagai target language

Berikutnya kita akan memanggil assembler untuk membaca file assembly tersebut dan menghasilkan file rellocatable machine code. Instruksi yang dapat digunakan adalah $as Hello.s -o Hello.o

gambar 5. pemganggilan assembler

Hasil dari assembler disimpan ke dalam file bernama Hello.o dimana file ini berisi binary file yang tidak dapat dibaca. Untuk menghasilkan sebuah file yang dapat dieksekusi maka hasil binary file tersebut akan diproses oleh linker/loader dengan menggunakan instruksi $gcc Hello.o -o Hello . Jika dilihat pada gambar 6, setelah linker dijalankan maka akan muncul sebuah executable file bernama Hello. Untuk melakukan eksekusi pada file tersebut maka dapat digunakan perintah ./Hello seperti yang terlihat pada gambar 6.

gambar 6. pemanggilan linker dan eksekusi executable file

References:
Aho, A.V., Ravi, S., & Ullman, J.D. (2007). Compiler: Principle, techniques and tools. @nd. Addison-Wesley. New York.


Published at : Updated
Written By
Novita Hanafiah, S.Kom., M.Sc
Concentration content Coordinator - Intelligence System | School of Computer Science

Periksa Browser Anda

Check Your Browser

Situs ini tidak lagi mendukung penggunaan browser dengan teknologi tertinggal.

Apabila Anda melihat pesan ini, berarti Anda masih menggunakan browser Internet Explorer seri 8 / 7 / 6 / ...

Sebagai informasi, browser yang anda gunakan ini tidaklah aman dan tidak dapat menampilkan teknologi CSS terakhir yang dapat membuat sebuah situs tampil lebih baik. Bahkan Microsoft sebagai pembuatnya, telah merekomendasikan agar menggunakan browser yang lebih modern.

Untuk tampilan yang lebih baik, gunakan salah satu browser berikut. Download dan Install, seluruhnya gratis untuk digunakan.

We're Moving Forward.

This Site Is No Longer Supporting Out-of Date Browser.

If you are viewing this message, it means that you are currently using Internet Explorer 8 / 7 / 6 / below to access this site. FYI, it is unsafe and unable to render the latest CSS improvements. Even Microsoft, its creator, wants you to install more modern browser.

Best viewed with one of these browser instead. It is totally free.

  1. Google Chrome
  2. Mozilla Firefox
  3. Opera
  4. Internet Explorer 9
Close