Apa perbedaan antara teknik kompilasi assembler interpreter dan compiler

Para programmer pasti sering mendengar istilah compiler dan interpreter. Dan sebagian besar mungkin sudah tahu perbedaan diantara keduanya.
program yang telah dibuat agar bisa dijalankan oleh komputer harus diterjemahkan dulu ke bahasa mesin. Kode program yang kita buat merupakan kode bahasa tingkat tinggi yang tidak bisa dibaca dan dimengerti oleh mesin. Mesin hanya bisa mengerti kode bahasa mesin seperti “10110000 01100001” karena itu harus di terjemahkan terlebih dahulu. Program sistem yang bertugas sebagai penterjemah disebut compiler dan interpreter. Apa itu interpreter dan compiler?

  1. Interpreter adalah program sistem yang berfungsi sebagai penterjemah kode program yang dibuat oleh programmer ke dalam bahasa mesin. Interpreter mengeksesusi perintah baris demi baris dengan mengikuti logika yang ada.

Compiler adalah program sistem yang juga berfungsi sebagai penterjemah kode program ke dalam bahasa mesin agar bisa dijalankan oleh mesin. Perbedaannya dengan interpreter adalah compiler mengeksekusi seluruh instruksi dalam program sekaligus.

  1. Interpreter adalah perangkat lunak yang mampu mengeksekusi code program (yang ditulis oleh programmer) lalu menterjemahkannya ke dalam bahasa mesin, sehingga mesin melakukan instruksi yang diminta oleh programmer tersebut. Perintah-perintah yang dibuat oleh programmer tersebut dieksekusi baris demi baris, sambil mengikuti logika yang terdapat di dalam kode tersebut. Proses ini sangat berbeda dengan compiler, dimana pada compiler, hasilnya sudah langsung berupa satu kesatuan perintah dalam bentuk bahasa mesin, dimana proses penterjemahan dilaksanakan sebelum program tersebut dieksekusi. 

Compiler sendiri 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.

Perbedaan antara Compiler dengan Interpreter :

1. Jika hendak menjalankan program hasil kompilasi dapat dilakukan tanpa butuh kode sumber. Kalau interpreter butuh kode sumber.

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

Perbedaan antara Compiler dengan Interpreter :

  • Interpreter menterjemahkan baris per baris. Sedangkan compiler, menterjemahkan seluruh instruksi sekaligus. Selanjutnya hasil terjemahan (setelah melalui tahapan lain) bisa dijalankan secara langsung, tanpa tergantung lagi oleh program sumber atau compilernya.
  • Pada interpreter, penyusunan program relatif lebih cepat dan bisa langsung diuji sekalipun masih ada beberapa kesalahan secara kaidah dalam program. Sedangkan pada compiler, proses pembuatan dan pengujian membutuhkan waktu relatif lebih lama, sebab ada waktu untuk mengkompilasi (menerjemahkan) dan ada pula waktu untuk melakukan proses linking. Program akan berhasil dikompilasi hanya jika program tak mengandung kesalahan secara kaidah sama sekali.
  • Pada interpreter, kecepatannya menjadi lambat sebab sebelum suatu instruksi dijalankan selalu harus diterjemahkan terlebih dahulu. Selain itu, saat program dieksekusi, interpreter juga harus selalu berada dalam memori. Jadi memori selalu digunakan baik untuk program maupun interpreter. Sedangkan pada compiler, proses eksekusi dapat berjalan dengan cepat, sebab tak ada lagi proses penerjemahan.
  • Pada interpreter, kode program tidak dapat dirahasiakan. Sedangkan pada compiler, kode program bisa dirahasiakan, sebab yang dieksekusi adalah program yang dalam bentuk kode mesin.

Contoh bahasa pemrograman yang menggunakan compiler adalah Visual Basic, Fortran, Cobol, Pascal, C, dlsb. Sedangkan yang menggunakan interpreter yaitu PHP, ASP, Perl, Python.

sumber : http://rob13y.wordpress.com/2010/03/26/perbedaan-compiler-dengan-interpreter/ Tanggal 27 september 2012

http://farri.student.umm.ac.id/2010/02/03/perbedaan-compiler-dengan-interpreter/ Tanggal 27 september 2012

Pengertian Compiler, Interpreter, Assambler dan Linker - Penjelasan Lengkap tentang Compiler, Interpreter, Assambler dan Linker.

Pengertian Compiler

Compiler adalah suatu program yang menerjemahkan bahasa program ( source code) kedalam bahasa objek (obyek code). Compiler menggabungkan keseluruhan bahasa program, mengumpulkannya dan kemudian menyusunnya kembali.

Komplier memerlukan waktu untuk membuat suatu program dapat di eksekusi oleh computer, program yang dieksekusi oleh compiler adalah dapat berjalan lebih cepat disbanding program yang diperoduksi oleh interpreter, disamping itu juga bersifat independen. Contoh program yang menggunakan compiler adalah Visual Basic, Visual Delvi, dan Pascal.


Tahap Kompilasi:
  1. Pertama source code (program yang ditulis) dibaca kememori computer).
  2. Source code tersebut diubah menjadi objek code (bahasa Assembly).
  3. Objek code di hubungkan dengan liberary yang dibutuhkan untuk membentuk file yang bisa dieksekusi.

Pengertian Interpreter

Interpreter adalah Perangkat lunak yang mampu mengeksekusi code program (yang ditulis oleh programmer) lalu menterjemahkannya ke dalam bahasa mesin, sehingga mesin melakukan instruksi yang diminta oleh programmer tersebut. Perintah-perintah yang dibuat oleh programmer tersebut dieksekusi baris demi baris, sambil mengikuti logika yang terdapat di dalam kode tersebut.

Proses ini sangat berbeda dengan compiler, dimana pada compiler, hasilnya sudah langsung berupa satu kesatuan perintah dalam bentuk bahasa mesin, dimana proses penterjemahan dilaksanakan sebelum program tersebut dieksekusi.

Interpreter atau dalam bahasa Indonesia dikenal sebagai Juru Bahasa berbeda dengan Translator atau penterjemah dalam segi media yang dipakai untuk menerjemahkan. Interpreter akan menterjemahkan bahasa sumber ke dalam bahasa sasaran secara langsung atau orally sementara translator akan menerjemahkan bahasa sumber ke bahasa sasaran secara tertulis.

Java dijalankan menggunakan interpreter yaitu Java Virtual Machine (JVM). Hal ini menyebabkan source code Java yang telah dikompilasi menjadi Java bytecodes dapat dijalankan pada platform yang berbeda-beda.

Pengertian Assambler

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.

Pengertian Linker

Linker adalah suatu program yang menterjemahkanprogram objek (bereksention OBJ) ke bentukprogram eksekusi (berekstension EXE atau COM).Sedangkan untuk membuat file object ke bentuk fileyang dapat dieksekusi(berekstension.COM atau.EXE) bisa anda gunakan file TLINK.EXE.

MENGENAL TRANSLATOR, COMPILER, INTERPRETER

DAN

ASSEMBLER

1. TRANSLATOR

A. Pengertian Translator

  Penterjemah atau translator adalah seseorang atau tim yang bertugas dalam menterjemahkan suatu file, data maupun bahasa kedalam format yang diinginkan klien atau perusahaan dimana dia bekerja. Penerjemah terutama bekerja dengan hal hal bisnis, teknis, hukum dan bahan-bahan tertulis ilmiah termasuk surat-surat, laporan, artikel, buku dll.

Pekerjaan mereka menggabungkan:

  • Membaca & menterjemahkan dokumen
  • Menulis dan mengedit salinan
  • Mempersiapkan ringkasan
  • Konsultasi klien
  • Mengembangkan kontak dan menggunakan program komputer terjemahan

B. Beberapa bisnis yang memerlukan jasa penterjemah / Translator

  • Perusahaan penerjemahan
  • Organisasi komersial dan industri
  • Layanan Sipil
  • Badan-badan internasional

 Banyak penerjemah diri dipekerjakan secara freelance, dibayar per kata sesuai dengan bahasa sehingga pendapatan dapat bergantung pada kecepatan penerjemahan. Perusahaan penerjemahan spesialis dan lembaga biasanya lebih memilih staf yang berpengalaman. Direktori dan daftar anggota yang diterbitkan oleh Institute Ahli Bahasa dan Institut Terjemahan dan Alih dapat memberikan informasi kontak yang berguna untuk jaringan dan aplikasi spekulatif.

C. Kualifikasi dan pelatihan yang dibutuhkan

   Gelar bahasa biasanya persyaratan minimum akademik untuk masuk dalam bidang pekerjaan ini. Untuk lulusan tanpa latar belakang yang relevan, atau untuk lulusan bahasa yang studi tidak termasuk terjemahan, kualifikasi terjemahan pascasarjana diperlukan. Bidang keahlian, seperti pengetahuan ilmiah, teknis atau hukum dapat bermanfaat.

D. Kemampuan yang dibutuhkan translator /penterjemah

  • Kemampuan untuk bekerja dengan tenggat waktu
  • Pengetahuan umum yang baik
  • Fasih dalam bahasa tertentu (khususnya bahasa internasional yaitu bahasa inggris ) baik lisan dan tulisan
  • Kefasihan dalam beberapa bahasa, setidaknya dua bahasa asing
  • Keterampilan IT

2. INTERPRETER  DAN COMPILER

   Interpreter adalah perangkat lunak yang mampu mengeksekusi code program (yang ditulis oleh programmer) lalu menterjemahkannya ke dalam bahasa mesin, sehingga mesin melakukan instruksi yang diminta oleh programmer tersebut. Perintah-perintah yang dibuat oleh programmer tersebut dieksekusi baris demi baris, sambil mengikuti logika yang terdapat di dalam kode tersebut. Proses ini sangat berbeda dengan compiler, dimana pada compiler, hasilnya sudah langsung berupa satu kesatuan perintah dalam bentuk bahasa mesin, dimana proses penterjemahan dilaksanakan sebelum program tersebut dieksekusi.

    Sedangkan Compiler sendiri 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.

A. Penjelasan perbedaan antara Compiler dengan Interpreter terperinci sebagai berikut :

1.     Jika hendak menjalankan program hasil kompilasi dapat dilakukan tanpa butuh kode sumber. Kalau interpreter butuh kode sumber.

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.     Interpreter menterjemahkan baris per baris. Sedangkan compiler, menterjemahkan seluruh instruksi sekaligus. Selanjutnya hasil terjemahan (setelah melalui tahapan lain) bisa dijalankan secara langsung, tanpa tergantung lagi oleh program sumber atau compilernya.

7.     Pada interpreter, penyusunan program relatif lebih cepat dan bisa langsung diuji sekalipun masih ada beberapa kesalahan secara kaidah dalam program. Sedangkan pada compiler, proses pembuatan dan pengujian membutuhkan waktu relatif lebih lama, sebab ada waktu untuk mengkompilasi (menerjemahkan) dan ada pula waktu untuk melakukan proses linking. Program akan berhasil dikompilasi hanya jika program tak mengandung kesalahan secara kaidah sama sekali.

8.     Pada interpreter, kecepatannya menjadi lambat sebab sebelum suatu instruksi dijalankan selalu harus diterjemahkan terlebih dahulu. Selain itu, saat program dieksekusi, interpreter juga harus selalu berada dalam memori. Jadi memori selalu digunakan baik untuk program maupun interpreter. Sedangkan pada compiler, proses eksekusi dapat berjalan dengan cepat, sebab tak ada lagi proses penerjemahan.

9.     Pada interpreter, kode program tidak dapat dirahasiakan. Sedangkan pada compiler, kode program bisa dirahasiakan, sebab yang dieksekusi adalah program yang dalam bentuk kode mesin.

B. Bahasa pemrograman yang menggunakan compiler dan interpreter

1. Bahasa pemrograman yang menggunakan compiler

  • Visual Basic
  • Fortran
  • Cobol
  • Pascal
  • C , dlsb.

2. Bahasa pemrograman yang menggunakan interpreter :

  • PHP
  • ASP
  • Perl
  • Python, dlsb.

Contoh Gambar tahapan Compiler dan Interpreter : 

Apa perbedaan antara teknik kompilasi assembler interpreter dan compiler


  3. ASSEMBLER

 1. Element dari Bahasa Pemrograman Assembler

    Bahasa assembly dikategorikan sebagai bahasa tingkat rendah (low level languange). Ini untuk menggambarkan kekhususannya sebagai bahasa yang berorientasi pada machine dependent. Untuk membandingkan bahasa mesin dan bahasa assembly, kita dapat melihatnya dari tiga karakteristik berikut :

A. Mnemonic operation code. Sebagai pengganti numeric operation code (opcodes) yang

digunakan pada bahasa mesin, digunakankanlah mnemonic code pada bahasa assembly. Selain kemudahan dalam penulisannya dibandingkan dari bahasa mesin juga mendukung pelacakan kesalahan seperti kesalahan penulisan operation code.

B. Symbolic operand specification. Penamaan simbol diasosiasikan sebagai suatu data atau instruksi. Operand lebih menunjukkan symbolic reference dibandingkan dengan alamat mesin suatu data atau instruksi. Hal ini akan mempermudah pada saat harus dilakukan modifikasi program.

C. Declaration of data/storage area. Data dapat dinyatakan dalam notasi desimal. Ini dilakukan untuk mencegah konversi secara manual dari konstanta ke dalam representasi internal mesin.