Perbedaan Assembler, Compiler dan Interpreter


TRANSLATOR

Perbedaan Assembler, Compiler dan Interpreter



Translator adalah suatu program atau metode dimana program tersebut mengambil input sebuah program lain yang ditulis pada suatu bahasa program (source language) ke bahasa lain (object on target language). Macam – macam translator antara lain : interpreter, compiler, dan assembler.


Apa sih pengertian dari interpreter, compiler, dan assembler beserta perbedaan nya ???

OK saya akan mencoba menjelaskan nya :)

A. Pengertian Compiler


Compiler adalah program sistem yang digunakan sebagai alat bantu dalam pemrogaman.Perangkat lunak yang melakukan proses penterjemahan code (yang dibuat programmer) ke dalam bahasa mesin. Hasil dari terjemahan ini adalah bahasa mesin. Pada beberapa compiler, output berupa bahasa mesin dilaksanakan dengan proses assembler yang berbeda.

Contoh bahasa pemrograman yang menggunakan compiler adalah Pascal, C, Basic, dll.

B. Pengertian Interpreter


Interpreter adalah perangkat lunak yang mampu mengeksekusi code program (yang di tulis programmer) lalu menerjemahkan nya ke dalam bahasa mesin, sehingga mesin melakukan instruksi yang diminta oleh programmer tersebut. Perintah (code) yang dibuat programmer tersebut dieksekusi baris demi baris, sambil mengikuti logika yang terdapat pada code tersebut. Interpreter tidak membangkitkan object code, hasil transaksi nya hanya dalam bentuk internal.


Contoh bahasa pemrograman yang menggunakan interpreter adalah PHP, ASP, Perl, dll. Biasanya di dalam bahasa pemrograman berbasis web.

Perbedaan antara Compiler dengan Interpreter :

  1. Untuk menjalankan menjalankan program hasil kompilasi (hasil compiler) dapat dilakukan tanpa membutuhkan source code. Kalau interpreter membutuhkan source code.
  2. Jika dengan kompiler, maka pembuatan kode yang bisa dijalankan mesin dilakukan dalam 2 tahap terpisah, yaitu parsing ( pembuatan kode objek ) dan linking ( penggabungan kode objek dengan library ) . Kalau interpreter tidak ada proses terpisah
  3. Jika compiler membutuhkan linker untuk menggabungkan kode objek dengan berbagai macam library demi menghasilkan suatu kode yang bisa dijalankan oleh mesin. Kalau interpreter tidak butuh linker untuk menggabungkan kode objek dengan berbagai macam library.
  4. Interpreter cocok untuk membuat / menguji coba modul ( sub-routine / program-program kecil ). Maka compiler agak repot karena untuk mengubah suatu modul / kode objek kecil, maka harus dilakukan proses linking / penggabungan kembali semua objek dengan library yang diperlukan
  5. Pada kompiler bisa dilakukan optimisasi / peningkatan kualitas kode yang bisa dijalankan. Ada yang dioptimasi supaya lebih cepat, ada yang supaya lebih kecil, ada yang dioptimasi untuk sistem dengan banyak processor. Kalau interpreter susah atau bahkan tidak bisa dioptimasikan.
  6. Pada interpreter, kode program tidak dapat dirahasiakan. Sedangkan pada compiler, kode program bisa dirahasiakan, sebab yang dieksekusi adalah program yang dalam bentuk kode mesin.

C. Pengertian Assembler


Bahasa assembly adalah sebuah program yang terdiri dari instruksi-instruksi yang menggantikan kode-kode biner dari bahasa mesin dengan “mnemonik” yang mudah diingat. Misalnya sebuah instruksi penambahan dalam bahasa mesin dengan kode “10110011” yang dalam bahasa assembly dapat dibuat dalam instruksi mnemonik ADD, sehingga mudah diingat dibandingkan dengan angka 0 dan 1, dalam setiap instruksi membutuhkan suatu operand baik berupa data langsung maupun suatu lokasi memori yang menyimpan data yang bersangkutan. Bahasa assembly sering juga disebut kode sumber atau kode simbolik yang tidak dapat dijalankan oleh prosesor, sedangkan assembler adalah suatu program yang dapat menerjemahkan program bahasa assembly ke program bahasa mesin. bahasa mesin adalah kumpulan kode biner yang merupakan instruksi yang bisa dijalankan oleh komputer. Program bahasa mesin sering disebut sebagai kode objek.

Mungkin cukup sekian, semoga bermanfaat. Jangan lupa titik koma :)

Perbedaan Assembler, Compiler dan Interpreter

Assembler vs Interpreter

Secara umum, kompiler adalah program komputer yang membaca program yang ditulis dalam satu bahasa, yang disebut bahasa sumber, dan menerjemahkannya ke bahasa lain, yang disebut bahasa target. Secara tradisional, bahasa sumber adalah bahasa tingkat tinggi seperti C ++ dan bahasa target adalah bahasa tingkat rendah seperti bahasa Majelis. Namun, ada kompiler yang dapat mengonversi program sumber yang ditulis dalam bahasa Assembly dan mengubahnya menjadi kode mesin atau kode objek. Perakit adalah alat seperti itu. Di sisi lain, Penerjemah adalah alat yang mengeksekusi instruksi yang ditulis dalam beberapa bahasa pemrograman. Interpreter dapat secara langsung mengeksekusi kode sumber tingkat tinggi atau menerjemahkannya ke kode perantara dan kemudian menafsirkannya atau mengeksekusi kode yang sudah dikompilasi.

Apa itu Assembler?

Assembler adalah perangkat lunak atau alat yang menerjemahkan bahasa Assembly ke kode mesin. Jadi, assembler adalah jenis kompiler dan kode sumbernya ditulis dalam bahasa Assembly. Assembly adalah bahasa yang dapat dibaca manusia tetapi biasanya memiliki hubungan satu lawan satu dengan kode mesin yang sesuai. Oleh karena itu assembler dikatakan melakukan terjemahan isomorfik (pemetaan satu ke satu). Perakit tingkat lanjut menyediakan fitur tambahan yang mendukung pengembangan program dan proses debugging. Misalnya, jenis perakit yang disebut perakit makro menyediakan fasilitas makro.

Apa itu Penerjemah?

Interpreter adalah program komputer atau alat yang mengeksekusi instruksi pemrograman. Seorang juru bahasa dapat mengeksekusi kode sumber secara langsung atau mengubah sumber menjadi kode perantara dan mengeksekusi secara langsung atau mengeksekusi kode yang sudah dikompilasi yang dihasilkan oleh kompiler (beberapa sistem interpreter menyertakan kompiler untuk tugas ini). Bahasa seperti Perl, Python, MATLAB dan Ruby adalah contoh bahasa pemrograman yang menggunakan kode perantara. UCSD Pascal mengartikan kode yang sudah dikompilasi. Bahasa seperti Java, BASIC dan Samlltalk pertama-tama mengkompilasi sumber ke kode perantara yang disebut bytecode dan kemudian menafsirkannya.

Apa perbedaan antara Assembler dan Interpreter?

Assembler dapat dianggap sebagai jenis kompiler khusus, yang hanya menerjemahkan bahasa Assembly ke kode mesin. Penerjemah adalah alat yang menjalankan instruksi yang ditulis dalam beberapa bahasa. Sistem juru bahasa dapat menyertakan kompiler untuk pra-kompilasi kode sebelum interpretasi, tetapi seorang juru bahasa tidak dapat disebut tipe khusus dari kompiler. Assembler menghasilkan kode objek, yang mungkin harus ditautkan menggunakan program tautan agar dapat dijalankan pada mesin, tetapi sebagian besar penerjemah dapat menyelesaikan eksekusi program sendiri. Assembler biasanya akan melakukan terjemahan satu ke satu, tetapi ini tidak berlaku untuk sebagian besar penerjemah. Karena bahasa Assembly memiliki pemetaan satu ke satu dengan kode mesin, assembler dapat digunakan untuk menghasilkan kode yang berjalan sangat efisien untuk acara-acara di mana kinerja sangat penting (untuk mesin grafis misalnya, sistem tertanam dengan sumber daya perangkat keras yang terbatas dibandingkan dengan komputer pribadi seperti gelombang mikro, mesin cuci, dll.). Di sisi lain, interpreter digunakan ketika Anda membutuhkan portabilitas tinggi. Misalnya, bytecode Java yang sama dapat dijalankan pada platform yang berbeda dengan menggunakan interpreter yang sesuai (JVM).

Perbedaan Assembler, Compiler dan Interpreter

Assembler vs Compiler

Secara umum, kompiler adalah program komputer yang membaca program yang ditulis dalam satu bahasa, yang disebut bahasa sumber, dan menerjemahkannya ke bahasa lain, yang disebut bahasa target. Secara tradisional, bahasa sumber adalah bahasa tingkat tinggi seperti C ++ dan bahasa target adalah bahasa tingkat rendah seperti bahasa Majelis. Namun, ada kompiler yang dapat mengonversi program sumber yang ditulis dalam bahasa Assembly dan mengubahnya menjadi kode mesin atau kode objek. Perakit adalah alat seperti itu. Jadi, baik assembler dan compiler pada akhirnya menghasilkan kode yang dapat langsung dieksekusi pada mesin.

Apa itu Kompiler?

Compiler adalah program komputer yang membaca program yang ditulis dalam satu bahasa, yang disebut bahasa sumber, dan menerjemahkannya ke bahasa lain, yang disebut bahasa target. Paling sering, bahasa sumber adalah bahasa tingkat tinggi dan bahasa target adalah bahasa tingkat rendah. Jadi, secara umum kompiler dapat dilihat sebagai penerjemah yang menerjemahkan dari satu bahasa ke bahasa lain. Selain itu, kompiler melakukan beberapa optimasi kode. Kompiler tipikal terdiri dari beberapa komponen utama. Komponen pertama adalah pemindai (juga dikenal sebagai penganalisa leksikal). Pemindai membaca program dan mengubahnya menjadi serangkaian token. Komponen kedua adalah parser. Ini mengubah string token ke pohon parse (atau pohon sintaksis abstrak), yang menangkap struktur sintaksis program. Komponen selanjutnya adalah rutinitas semantik yang menginterpretasikan semantik dari struktur sintaksis. Optimasi kode dan pembuatan kode akhir mengikuti ini.

Apa itu Assembler?

Assembler adalah perangkat lunak atau alat yang menerjemahkan bahasa Assembly ke kode mesin. Jadi, assembler adalah jenis kompiler dan kode sumbernya ditulis dalam bahasa Assembly. Assembly adalah bahasa yang dapat dibaca manusia tetapi biasanya memiliki hubungan satu lawan satu dengan kode mesin yang sesuai. Oleh karena itu assembler dikatakan melakukan terjemahan isomorfik (pemetaan satu ke satu). Perakit tingkat lanjut menyediakan fitur tambahan yang mendukung pengembangan program dan proses debugging. Misalnya, jenis perakit yang disebut perakit makro menyediakan fasilitas makro.

Apa perbedaan antara Assembler dan Compiler?

Compiler adalah program komputer yang membaca program yang ditulis dalam satu bahasa dan menerjemahkannya ke bahasa lain, sedangkan assembler dapat dianggap sebagai jenis kompiler khusus yang menerjemahkan hanya bahasa Assembly ke kode mesin. Compiler biasanya menghasilkan kode yang dapat dieksekusi mesin langsung dari bahasa tingkat tinggi, tetapi assembler menghasilkan kode objek yang mungkin harus ditautkan menggunakan program linker agar dapat dijalankan pada mesin. Karena bahasa Assembly memiliki pemetaan satu ke satu dengan kode mesin, assembler dapat digunakan untuk menghasilkan kode yang berjalan sangat efisien untuk acara-acara di mana kinerja sangat penting (untuk mesin grafis misalnya, sistem tertanam dengan sumber daya perangkat keras yang terbatas dibandingkan dengan komputer pribadi seperti gelombang mikro, mesin cuci, dll.).