Pernahkah Anda bertanya-tanya, bagaimana cara komputer menerjemahkan instruksi manusia?

Program komputer merupakan serangkaian instruksi yang ditulis dalam bentuk code untuk melakukan suatu fungsi spesifik pada komputer. Umumnya, penulisan program komputer ditulis menggunakan High Level Language (HLL) atau bahasa manusia.

Namun, sejatinya program komputer tidak bisa langsung mencerna bahasa manusia tersebut. Komputer hanya memahami program yang ditulis dalam angka 0 dan 1 dalam biner, yang disebut dengan kode mesin. Maka dari itu, agar dapat berkomunikasi, developer membutuhkan compiler dan interpreter untuk mengubah HLL menjadi bahasa mesin.

Nah, apa itu compiler? Apa perbedaan compiler dengan interpreter? Yuk, simak penjelasan berikut.

Apa itu Compiler dan Apa Perbedaannya Dengan Interpreter

Mengenal Apa itu Compiler

Apa itu compiler? Compiler atau kompilator adalah program komputer yang digunakan untuk menerjemahkan source code yang dibuat oleh programmer, menjadi bahasa mesin. Sederhananya, compiler ini berfungsi untuk menerjemahkan source code menjadi file yang dapat dijalankan komputer. Program ini akan menggabungkan semua bahasa pemrograman, kemudian menyusunnya kembali menjadi file executable yang bisa diserap oleh prosesor, seperti file .exe.

Compiler memiliki dua fase utama, yaitu fase yang pertama fase analisis dan fase kedua 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 code generator;
  • Code generator menerjemahkan kode dari intermediate code generator menjadi instruksi mesin yang spesifik.

Manfaat Compiler

Selain menerjemahkan source code, compiler juga memiliki beberapa manfaat lainnya, yaitu :

  • Compiler memverifikasi seluruh program, sehingga tidak ada kesalahan sintaks atau semantik;
  • Memungkinkan membuat struktur internal dalam memori;
  • 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;
  • Dapat membuat file di hard drive;
  • Meningkatkan pemahaman tentang bahasa semantik.

Perbedaan Compiler dengan Interpreter

Meskipun sama-sama bermanfaat untuk menerjemahkan bahasa HLL ke dalam bahasa mesin. Namun, dalam eksekusi perintah keduanya memiliki beberapa perbedaan.

Pada compiler, kode sumber akan dikonversi menjadi machine code sebelum program tersebut dijalankan. Sementara, interpreter mengkonversi source code menjadi machine code secara langsung ketika program dijalankan.

Berikut beberapa perbedaan lain antara compiler dan interpreter :

Compiler

  • Memindai seluruh program dan menerjemahkannya secara keseluruhan ke dalam machine code.
  • Membutuhkan banyak waktu untuk menganalisis kode sumber, namun waktu eksekusi relatif cepat.
  • Membutuhkan lebih banyak memori, karena menghasilkan kode objek menengah yang membutuhkan tautan lebih lanjut.
  • Menampilkan kesalahan hanya setelah memindai seluruh program;

Interpreter

  • Menerjemahkan satu pernyataan satu per satu.
  • Membutuhkan sedikit waktu untuk menganalisis kode sumber, namun waktu eksekusi lebih lambat.
  • Memori lebih efisien karena tidak ada kode objek.
  • Terus menerjemahkan program sampai kesalahan pertama terpenuhi. Dengan begitu debugging mudah dilakukan.

Baca Juga: 6 Manfaat Coding yang Perlu di Ketahui Oleh Programmer Untuk Perkembangan Karir 

(Visited 15 times, 1 visits today)