Apa Itu Compiler? Cara Kerja dan Fungsinya

Informasi

Compiler adalah salah satu hal yang cukup penting yang setiap web developer harus tau dan pahami. Dengan compiler, programmer bisa memberikan perintah kepada komputer dengan lebih dipahami. Jika Anda ingin menjadi programmer, maka Anda harus memahami tools yang satu ini dengan jelas agar Anda bisa meningkatkan kualitas penulisan kode Anda dan juga mengerjakan program komputer dengan lebih efektif. 

Apa itu compiler?

Apa itu compiler?

Compiler adalah program komputer yang menerjemahkan (mengkompilasi) kode sumber dalam bahasa tingkat tinggi (misal C++) ke dalam serangkaian instruksi bahasa mesin yang lebih sederhana sehingga dapat dipahami oleh komputer. Atau dengan kata lain, compiler adalah program komputer yang menerjemahkan kode komputer yang dituliskan dalam satu bahasa pemrograman ke bahasa lain.

Istilah compiler diciptakan oleh ilmuwan komputer Amerika Grace Hopper, yang merancang salah satu compiler pertama di awal tahun 1950-an. Compiler adalah program komputer yang sangat besar, compiler mampu memeriksa kesalahan dan kemampuan lainnya. Beberapa compiler menerjemahkan bahasa tingkat tinggi ke dalam bahasa rakitan (assembly language), yang kemudian diterjemahkan (dirakit) menjadi kode mesin oleh program perakitan atau yang biasa disebut bahasa perakit (assembler).

Bagaimana cara kerja compiler?

Compiler bervariasi dalam metode yang mereka gunakan untuk menganalisis dan mengubah kode sumber menjadi kode keluaran. Terlepas dari perbedaan mereka, mereka biasanya melakukan langkah-langkah berikut:

  • Analisis leksikal

Compiler membagi kode sumber menjadi leksem, yang merupakan fragmen kode individual yang mewakili pola tertentu dalam kode. Lexemes kemudian diberi token dalam persiapan untuk analisis sintaksis dan semantik.

  • Analisis sintaksis 

Compiler memverifikasi bahwa sintaks kode sudah benar, berdasarkan aturan untuk bahasa sumber. Proses ini juga disebut sebagai parsing. Selama langkah ini, compiler biasanya membuat pohon sintaksis abstrak yang mewakili struktur logis dari elemen kode tertentu.

  • Analisis semantik

Compiler memverifikasi validitas logika kode. Langkah ini melampaui analisis sintaksis dengan memvalidasi keakuratan kode. Misalnya, analisis semantik mungkin memeriksa apakah variabel telah diberi tipe yang tepat atau telah dideklarasikan dengan benar.

  • Pembuatan kode IR 

Setelah kode melewati ketiga fase analisis, compiler menghasilkan representasi perantara (IR) dari kode sumber. Kode IR memudahkan untuk menerjemahkan kode sumber ke dalam format yang berbeda. Namun, itu harus secara akurat mewakili kode sumber dalam segala hal, tanpa menghilangkan fungsionalitas apa pun.

  • Optimasi

Compiler mengoptimalkan kode IR dalam persiapan pembuatan kode akhir. Jenis dan tingkat pengoptimalan bergantung pada compiler. Beberapa compiler membiarkan pengguna mengonfigurasi tingkat pengoptimalan.

  • Pembuatan kode keluaran

Compiler menghasilkan kode keluaran akhir, menggunakan kode IR yang dioptimalkan.

Mengapa compiler penting?

fungsi compiler

Compiler adalah program komputer yang penting untuk pengembangan perangkat lunak. Compiler membuat para developer untuk menulis kode dalam bahasa pemrograman tingkat tinggi tetapi lebih mudah dipahami dan lebih mudah dibaca manusia daripada kode mesin. Compiler juga memastikan bahwa kode yang tertera itu benar dan efisien, compiler juga mengurangi kemungkinan kesalahan dan meningkatkan kinerja.

Compiler juga memungkinkan pengembangan perangkat lunak untuk berbagai platform dan juga arsitektur. Kode tunggal yang sendiri juga bisa dikompilasi menjadi kode yang dapat dieksekusi yang berjalan di beberapa sistem operasi seperti Windows, MacOS dan Linux. Kompatibilitas lintas platform ini memudahkan pengembangan perangkat lunak yang dapat digunakan oleh berbagai pengguna.

Ada dua jenis compiler yang bisa digunakan web developer : 

  • Cross compiler adalah compiler yang berjalan pada mesin yang satu dan menghasilkan kode untuk mesin selanjutnya. Compiler ini bisa membuat kode untuk platform berbeda selain platform yang dijalankan.
  • Source-to-source compiler adalah ,atau yang biasa disebut transcompiler, compiler yang menerjemahkan kode sumber yang ditulis dalam satu bahasa pemrograman menjadi kode sumber bahasa pemrograman lain.

Kekurangan compiler

Kompilasi membuat kode bergantung terhadap platform. Ini berarti bahwa setiap kode yang dikompilasi menghasilkan file yang dapat dibaca oleh program komputer tetapi hanya bisa dibaca/dieksekusi oleh jenis program komputer tertentu. Dengan artian, kode yang dikompilasi di Windows tidak akan bisa berjalan di sistem Mac ataupun Linux tanpa dikompilasi ulang.

Alternatif lain compiler : Interpreter

Selain dikompilasi dengan compiler, orang juga bisa menggunakan interpreter sebagai alat inti lain dari compiler untuk menjalankan kode sumber. Interpreter mengeksekusi kode sumber secara langsung baris demi baris, tanpa mengkompilasinya menjadi kode di mesin/komputer.

Karena interpretasi dilakukan baris demi baris, program yang diterjemahkan oleh interpreter biasanya berjalan lebih lambat dibandingkan dengan kode yang dikompilasi oleh compiler. Selain itu, program yang diterjemahkan tidak menghasilkan file kode mesin seperti yang dihasilkan oleh compiler.

Perbedaan compiler dengan interpreter 

Jika Anda dibingungkan oleh perbedaan keduanya maka Anda bisa membaca penjelasan lanjutan ini. Meskipun keduanya serupa, mereka berbeda dalam hal-hal penting. Compiler menganalisis dan mengonversi kode sumber yang ditulis dalam bahasa seperti Java, C++, C#, atau Swift. Mereka biasanya digunakan untuk menghasilkan kode mesin atau bytecode yang dapat dijalankan oleh sistem host target.

Interpreter tidak menghasilkan kode IR atau menyimpan kode mesin yang dihasilkan. Mereka memproses kode satu per satu saat runtime, tanpa mengkonversi kode terlebih dahulu atau menyiapkannya terlebih dahulu untuk platform tertentu. Penerjemah digunakan untuk kode yang ditulis dalam bahasa skrip seperti Perl, PHP, Ruby atau Python.

Beberapa jenis compiler

Beberapa jenis compiler

Berikut ini adalah beberapa perbedaan dari jenis-jenis compiler yang mungkin harus Anda ketahui. Antara lain : 

  • Cross-Compiler – Program ini adalah program komputer yang dikompilasi dapat berjalan di komputer yang CPU atau OS nya berbeda dengan komputer tempat compiler berjalan.
  • Bootstrap Compiler – Compiler yang ditulis dalam bahasa yang ingin dikompilasi.
  • Decompiler – Compiler yang menerjemahkan dari bahasa kode tingkat rendah ke bahasa kode tingkat yang lebih tinggi.
  • Transcompiler – Compiler yang menerjemahkan bahasa kode tingkat tinggi
  • Compiler hanya bisa menerjemahkan program sumber yang telah ditulis dalam bahasa yang dimaksudkan oleh compiler. Setiap bahasa pemrograman tingkat tinggi memerlukan compiler terpisah untuk konversi. Misal, compiler FORTRAN hanya bisa menerjemahkan ke dalam program FORTRAN.

Sebuah sistem komputer mungkin memiliki lebih dari satu compiler untuk bekerja pada lebih dari satu bahasa tingkat tinggi. Beberapa compiler yang banyak digunakan :

  • C – Turbo C, Tiny C Compiler, GCC, Clang, Portable C Compiler
  • C++ – GCC, Clang, Dev C++, Intel C++, Code Black
  • JAVA – IntelliJ IDEA, Eclipse IDE, NetBeans, BlueJ, JDeveloper 
  • Kotlin – IntelliJ IDEA, Eclipse IDE 
  • Python – CPython, JPython, Wing, Spyder
  • JavaScript – WebStorm, Atom IDE, Visual Studio Code, Komodo Edit 

Penutup

Compiler adalah alat penting untuk pengembangan perangkat lunak. Mereka memungkinkan pengembang untuk menulis kode dalam bahasa pemrograman tingkat tinggi, memastikan bahwa kode tersebut benar dan efisien, dan memungkinkan pengembangan perangkat lunak untuk berbagai platform dan arsitektur. Memahami compiler sangat penting untuk setiap programmer yang ingin mengembangkan perangkat lunak yang efisien, andal, dan dapat diskalakan.

Jika Anda ingin membuat website untuk bisnis atau usaha Anda, Anda bisa membeli domain dan hosting kemudian mulai menjalankannya. Tidak perlu khawatir atau mencari kemana-mana karena IDCloudHost menawarkan berbagai layanan domain, hosting dan VPS untuk kebutuhan website Anda.




 

 

Â