Compiler
Apa itu Compiler?
Compiler yang dalam bahasa Indonesia disebut sebagai Kompilator merupakan sebuah program khusus yang digunakan oleh pengembang, untuk mengubah bahasa manusia menjadi bahasa mesin. Nantinya, Compiler ini akan memiliki manfaat untuk mengubah semua bahasa menjadi berkas yang bisa dimengerti oleh prosesor pada sebuah komputer, umumnya semua bahasa yang telah tersusun ini akan disimpan dalam format .exe.
Bahasa manusia sendiri sebenarnya termasuk ke dalam HLL atau High Level Language, yang mana tidak dapat dimengerti oleh mesin atau teknologi AI mana pun. Maka dari untuk, bagaimana caranya untuk dapat berkomunikasi langsung dengan prosesor? Caranya ialah dengan mengubah bahasa yang kita gunakan menjadi bahasa mesin, dan Compiler ini memiliki tugas mengubah bahasa manusia ke bahasa mesin.
Jika kita lihat, sebenarnya kita juga turut berinteraksi langsung dengan mesin. Namun dengan pengembangan yang telah dilakukan sebelumnya oleh pengembang, sebut saja sebagai contoh kecil ialah dengan menggunakan teknologi dari ponsel pintar.
Kita memberikan perintah dengan cara menyentuh, memilih, dan menggunakan ponsel untuk menikmati berbagai fitur yang ada di dalamnya. Belum lagi dengan ditemukannya teknologi kontrol suara melalui Google Assist. Ini tentu telah memakan banyak waktu dalam pengembangannya, dan menggunakan aplikasi di ponsel menjadi contoh kecil kita sebagai manusia berinteraksi dengan mesin.
Fase-Fase Compiler
Dalam Compiler, terdapat dua fase berbeda yang terbagi menjadi beberapa tahapan. Setiap Compiler akan memiliki Output dengan level yang sama dan saling terhubung. Lebih lanjut, mari simak apa saja fase-fase yang ada di Compiler di bawah ini:
A. Analisis Compiler
Pada fase pertama ini, harus melalui beberapa tahapan perantara yang memiliki beberapa kode seperti berikut:
- Intermediate Code Generator, yang memiliki fungsi untuk memberikan kode yang abstrak.
- Semantic Analyzer, memiliki fungsi untuk memberikan analisa semantik yang sifatnya statis dari berbagai konstruksi.
- Sytax Analyzer, memiliki fungsi untuk memahami sebuah kalimat dalam program dengan menggunakan sintaks bahasa.
- Lexical Analyzer, yang memiliki fungsi sebagai token.
B. Sintesis Compiler
Fase yang satu ini akan mengidentifikasi sebuah program dengan target yang setara, kemudian akan menghasilkan representasi yang sama. Beberapa fase yang ada di Sintesis Compiler diantaranya ialah:
- Optimizer, memiliki fungsi yang penting untuk memaksimalkan kode abstrak.
- Generator, memiliki fungsi untuk menerjemahkan kode perantara abstrak tadi ke dalam instruksi sesuai dengan standar mesin.
Cara Kerja Compiler
Compiler memiliki cara kerja yang cukup sederhana, tugasnya untuk membaca semua kode Source Code ke dalam bentuk teks, karakter-karakter yang berhubungan langsung dengan token. Kemudian akan memeriksa apakah token yang telah diterima telah memenuhi SPOK atau Grammar.
Nah, setelahnya Compiler akan melakukan pemeriksaan semantik input, dan akan membuat ouput dalam sebuah bahasa yang disebut dengan Assembly. Proses berikutnya ialah Assembler, yang merupakan sebuah bahasa mesin, sebelum akhirnya akan memasuki proses akhir untuk membuat Executable.
Mempelajari Compiler akan semakin rumit ketika kita tidak memahami istilah asing yang ada di dalamnya, beberapa istilah yang dapat Anda pahami ialah sebagai berikut:
- Source Code, merupakan sebuah program dalam bentuk kode, umumnya disebut dengan kode program yang memiliki fungsi tekstual dalam beberapa bahasa tertentu.
- Token, sekumpulan karakter yang memiliki arti atau makna.
- Grammar, tata kelola bahasa.
- Assembly, bahasa yang telah disederhanakan yang kemudian akan dikelola menggunakan bahasa mesin.
- Assembler, merupakan sebuah alat yang digunakan untuk mengelola Assembly.
- Assembling, merupakan istilah yang digunakan ketika Assembler mengelola Assembly.
- Executable, adalah sebuah berkas program yang siap dijalankan.
- Linker, sebuah alat yang digunakan untuk menggabungkan kode pada mesin yang telah ditulis di Librabry.
- Library, sekumpulan kode yang disatukan dalam sebuah berkas.
Apa Manfaat Compiler?
Selain memiliki fungsi untuk dapat menerjemahkan sebuah kode agar dapat dimengerti oleh mesin, Compiler tentu memiliki manfaat yang cukup banyak untuk penggunaan sehari-hari, diantaranya ialah sebagai berikut:
1. Memeriksa Program
Dengan menggunakan Compiler, maka tugasnya memiliki keunggulan untuk dapat memeriksa sebuah program dan pada akhirnya akan menghindari berbagai kesalahan sintaks dan semantik.
2. Terjemahan
Compiler juga memiliki fungsi untuk dapat membantu penggunanya dalam menerjemahkan sebuah bahasa program ke dalam bahasa yang mereka mengerti.
3. Membuat File
Compiler juga memberikan fitur yang dapat membantu penggunanya untuk membuat sebuah berkas dan disimpan ke dalam Hard Drive.
4. Koreksi Data
Selain itu, fungsi lainnya dari Compiler yang banyak digunakan ialah mampu mengelola data dan memeriksa kesalahan apa saja yang ada pada sebuah data olahan.
5. Memahami Semantik
Meskipun kurang begitu populer dibandingkan dengan bahasa pemrograman yang lain seperti Phyton dan JavaScript. Namun bahasa semantik juga cukup mudah dipahami dan juga memiliki keunggulan tersendiri, sebut saja untuk membuat struktur internal hanya dengan melalui memori.
6. Eksekusi Cepat
Kelebihan lainnya dari Compiler ialah waktu yang digunakan, berbeda dengan bahasa lain di mana membutuhkan banyak kode dan waktu, dengan menggunakan Compiler Anda dapat dengan mudah mengeksekusi bahasa dalam waktu yang relatif lebih cepat.
Compiler dan Interpreter
Masih banyak yang cukup salah paham mengenai Compiler dan Interpreter, karena memang memiliki fungsi yang sama untuk menerjemahkan bahasa HLL ke dalam bahasa mesin. Hal yang membedakan ialah terletak pada eksekusi perintah.
Compiler memiliki kode sumber yang akan dikonversi ke Machine Code, sebelum akhirnya program itu dijalankan. Sedangkan Interpreter akan mengonversi Source Code menjadi Machine Code langsung ketika program sedang dibuka atau dijalankan. Lebih lanjut, simak perbedaan kedua melalui tabel di bawah ini:
Contoh-Contoh Compiler
1. C+
Mungkin belum banyak yang mengetahui secara pasti bahwa C++ adalah bagian dari Compiler Multiple Pass, yang memang telah dirancang dengan orientasi dalam pemrograman sistem. Umumnya, C++ akan tertanam pada sebuah perangkat lunak yang terbatas sumber dayanya.
2. Visual Basic
VB sendiri merupakan pemrograman yang berada dalam generasi ketika oleh Microsoft, memungkinkan seorang pengembang untuk dapat menggunakan GUI dalam memodifikasi kode menggunakan bahasa pemrograman dasar.
3. Fortran
Bahasa pemrograman yang satu ini termasuk ke dalam bahasa imperatif, yang mana lebih banyak digunakan untuk komputasi numerik atau komputasi ilmiah. Selama beberapa dekade, bahasa ini telah digunakan untuk mempermudah ilmuwan dalam mengembangkan teknologi seperti fisika, geofisika, dan kimia.
4. Pascal
Pascal adalah bahasa pemrograman yang memiliki sifat prosedural dan imperatif, di mana memang khusus dirancang untuk dapat mendorong bahasa program menggunakan program yang terstruktur dalam penataan data.