Compiler – pernahkah kamu berfikir tentang bagaimana cara komputer atau laptop memahami setiap kode program yang kita tulis? Pada dasarnya, bahasa program yang kita tulis adalah high level language, sebuah bahasa yang tidak bisa langsung dicerna oleh perangkat seperti komputer.
Nah, agar dapat berkomunikasi dengan perangkat tersebut, programmer membutuhkan compiler. Apa sih compiler itu? kenapa harus menggunakan compiler, berikut penjelasan lengkapnya.
Apa itu Compiler
Compiler adalah sebuah program komputer yang bertugas untuk mengkonversi source code yang kita buat (high level language) menjadi bahasa mesin. Misalnya, seperti file .exe, program komputer tersebut akan menggabungkan semua bahasa pemrograman, kemudian menyusun nya kembali menjadi file executable yang bisa diserap oleh prosesor.
Secara umum, compiler memiliki dua fase utama, yaitu fase analisis dan fase sintesis.
Fase Analisis
- Lexical analyzer, berfungsi membagi program dalam bentuk token.
- Syntax analyzer, berfungsi mengenali kalimat dalam program menggunakan sintaks bahasa.
- Semantic analyzer, memeriksa semantik statis dari setiap konstruksi.
- Intermediate code generator, berfungsi menghasilkan kode abstrak.
Fase Sintesis
- Code Optimizer, berfungsi mengoptimasi kode abstrak yang dihasilkan kode generator.
- Code Generator, menerjemahkan kode dari intermediate code generator menjadi instruksi mesin yang spesifik.
Arsitektur compiler modern biasanya bukan lagi merupakan program tunggal, namun merupakan rangkaian komunikasi antar program dengan tugas spesifik masing-masing. Program-program tersebut beserta tugasnya secara umum terdiri dari:
- Compiler itu sendiri, yang menerima kode sumber dan menghasilkan bahasa tingkat rendah (assembly).
- Assembler, yang menerima keluaran compiler dan menghasilkan berkas objek dalam bahasa mesin.
- Linker, yang menerima berkas objek keluaran assembler untuk kemudian digabungkan dengan pustaka-pustaka yang diperlukan dan menghasilkan program yang dapat dieksekusi (executable).
Compiler yang menggunakan arsitektur ini misalnya GCC, Clang, dan FreeBASIC.
Beberapa compiler tidak menggunakan arsitektur diatas secara gamblang, dikarenakan komunikasi antar program jauh lebih lambat dibandingkan jika komunikasi dilakukan secara internal di dalam satu program.
Sehingga, compiler tersebut mengintegrasikan assembler dan linker didalam compiler. Compiler yang menggunakan arsitektur ini salah satunya adalah Free Pascal.
Fungsi dan Manfaat dari Compiler
Selain menerjemahkan source code, compiler juga memiliki beberapa manfaat lainnya, yaitu:
- Compiler memverifikasi seluruh program, sehingga tidak ada kesalahan sintaks untuk semantik.
- Memungkinkan membuat struktur internal dalam memori, serta memanajemen ruang penyimpanan seluruh kode dan variabel.
- Teknik membuat compiler dapat digunakan di program lain.
- Waktu pengerjaan jauh lebih singkat karena waktu eksekusi relatif cepat.
- Membantu menerjemahkan seluruh program ke dalam bahasa lain.
- Mengkompilasi data-data atau program secara terpisah.
- Menerjemahkan kode sumber menjadi kode objek sesuai dengan jenis mesin yang digunakan.
- Memperbaiki struktur tata bahasa pada program sumber dan membaginya menjadi beberapa bagian.
Contoh Compiler
Berikut ini adalah beberapa contoh compiler yang digunakan oleh beberapa bahasa pemrograman.
1. C++
C++ merupakan bahasa pemrograman dari evolusi bahasa C yang dikembangkan oleh Dennis Ritchie. C++ sering disebut sebagai bahasa pemrograman prosedural yang berorientasi pada objek. C++ banyak digunakan oleh developer untuk mengembangkan game, software, dan lain sebagainya.
2. Fortran
Fortran adalah kepanjangan dari formula translation yang merupakan salah satu bahasa pemrograman yang dapat mendukung penulisan bentuk perhitungan seperti bilangan kompleks, namun fortran memiliki kelemahan yakni pada source code sulit dimengerti sebab menggunakan bahasa pemrograman tingkat tinggi.
3. Pascal
Pascal merupakan salah satu bahasa pemrograman dengan cara penulisan menggunakan algoritma structure english, imperatif dan prosedural. Pascal menjadi bahasa pemrograman yang menerapkan struktur dan prosedur programming yang baik. Salah satu kelebihan pascal yakni memiliki bahasa yang sederhana yang dapat lebih mudah dipahami oleh manusia.
4. Visual Basic
Visual Basic atau VB merupakan bahasa pemrograman yang tidak biasa atau bisa disebut sebagai advance. Karena VB memiliki kelebihan yakni dapat dengan mudah menulis program pada sistem operasi windows. VB dirumuskan dengan integrated development environment yang mampu menyederhanakan kode dan mengoreksi kesalahan maupun perbaikan.
Compiler dan interpreter memiliki tugas yang hampir sama, untuk kamu yang penasaran mengenai apa itu interpreter, silahkan lanjut baca di pengertian interpreter dan perbedaan antara interpreter dan compiler.