Anda di halaman 1dari 5

Tugas

Dasar TIK COMPILER & INTERPRETER

Disusun oleh: Tubagus Habibullah Wahyu Ari Mukti

Kelas: TKJ 1 A

Compiler & Interpreter


Agar suatu program dapat dimengerti oleh computer, maka program haruslah diterjemahkan kedalam bahasa komputer yaitu kode mesin. Adapun penerjemah yang digunakan bisa berupa Interpreter atau Compiler. Interpreter Interpreter adalah suatu jenis penerjemah baris perbaris instruksi untuk setiap saat.Keuntungan pemakaian interpreter, penyusunan program relatif lebih cepat dan bisa langsung diuji sekalipun masih ada beberapa kesalahan secara kaidah dalam program. Sedangkan, kelemahannya menjadi lambat sebab sebelum instruksi dijalankan selaluharus diterjemahkan dulu. Selain itu, saat program dieksekusi, interpreter juga harus berada dalam memori. Jadi memori selalu digunakan baik untuk program maupun interpreter. Disamping itu, program sumber (source code) yaitu program aslinya tidak dapat dirahasiakan. Compiler Compiler adalah suatu jenis penerjemah yang menerjemahkan secara sekaligus seluruh instruksi. Proses kompilasi ini dilakukan sekali saja. Selanjutnya hasil penerjemahan bisa dijalankan secara langsung, tanpa tergantung lagi oleh program sumber maupun kompilernya. Pengertian lain menyebutkan, Compiler adalah tipe khusus dari program komputer yang menerjemahkan file teks yang dibuat manusia ke dalam format yang dapat lebih mudah dimengerti oleh komputer. Pada tingkat yang paling dasar, komputer hanya bisa mengerti dua hal, yaitu angka 1 dan 0. Pada tingkat ini, manusia akan beroperasi sangat lambat dalam menemukan informasi yang terdapat dalam string panjang antara angka 1 dan 0. Kompiler adalah sebuah program komputer yang menjembatani kesenjangan ini. Pada awalnya, penyusun beberapa program yang sangat sederhana hanya bisa menerjemahkan simbol ke dalam bit dan angka 0 dan 1, yang dapat dipahami komputer. Dengan versi yang lebih baru, aturan lain bisa ditambahkan ke program kompiler untuk memungkinkan struktur bahasa yang lebih alami bagi programmer untuk beroperasi dengan komputer. Hal ini membuat programmer lebih mudah dan memungkinkan lebih banyak orang untuk mulai membuat program. Karena lebih banyak orang mulai membuat program, ide-ide lebih baik mulai ditawarkan dan digunakan untuk membuat kompiler yang lebih canggih.

Dengan cara ini, program kompiler terus berkembang, terus diperbaiki dan menjadi lebih mudah digunakan. Kompilator program juga bisa bersifat khusus. Struktur bahasa tertentu yang lebih cocok untuk suatu tugas tertentu dan spesifik mulai dikembangkan. Beberapa compiler adalah multistage atau multiple pass. Sebuah first pass bisa mengambil bahasa yang sangat alami dan membuatnya lebih bersahabat dengan bahasa komputer. Sebuah second or even a third pass bisa dibawa ke tahap akhir, yaitu file executable. Output intermediate dalam compiler multistage biasanya disebut pseudo-code, karena tidak dapat digunakan oleh komputer. Pseudo-code sangat terstruktur, seperti program komputer, tidak free flowing and verbose seperti bahasa alami. Hasil akhir disebut file eksekusi, karena file itu berisi perintah yang dieksekusi atau dijalankan oleh komputer. Memisahkan tugas seperti ini membuat lebih mudah untuk menulis compiler lebih canggih, karena setiap sub tugas adalah berbeda. Hal ini juga membuat lebih mudah untuk komputer untuk menunjukkan di mana ia mengalami kesulitan memahami apa yang sedang diminta untuk melakukannya. Kesalahan yang membatasi kompiler dalam memahami sebuah program disebut kesalahan sintaks. Kesalahan dalam cara fungsi program disebut kesalahan logika. Kesalahan logika jauh lebih sulit untuk untuk diperbaiki. Kesalahan sintaks seperti kesalahan ejaan, sedangkan kesalahan logika misalnya perintah yang harus dikerjakan. Cross compiler program juga telah dikembangkan. Sebuah cross compiler memungkinkan sebuah file teks sebagai set instruksi yang dibuat untuk satu komputer yang dirancang oleh produsen tertentu yang harus dikompilasi dan dijalankan untuk komputer yang berbeda dengan produsen yang berbeda. Sebagai contoh, sebuah program yang ditulis untuk berjalan pada komputer Intel terkadang bisa secara lintas dikompilasi untuk dijalankan pada komputer yang dikembangkan oleh Motorola. Namun, sering tidak bekerja dengan baik. Pada tingkat di mana program komputer beroperasi, perangkat keras komputer bisa terlihat sangat berbeda, bahkan walaupun mereka mungkin terlihat sangat mirip. Keuntungannya, proses eksekusi dapat berjalan dengan cepat, sebab tak ada lagi proses penerjemahan. Disamping itu, program sumber bisa dirahasikan, sebab yang dieksekusi adalah program yang sudah dalam bentuk kode mesin. Sedangkan kelemahannya proses pembuatan dan pengujian membutuhkan waktu relatif lebih lama, sebab ada waktu untuk mengkompilasi (menerjemahkan) ada pula waktu melakukan proses linking. Perlu diketahui, program akan berhasil dikompilasi hanya jika program tak mengandung kesalahan secara kaidah sama sekali.

Gambar dibawah ini merupkan proses kompilasilinking dari program C:

Proses Kompilasi dan Linking

Berikut adalah keterangan dari gambar diatas:

Pertama-tama program C ditulis dengan menggunakan editor. Program ini disimpan dalam file yang disebut file program sumber (dengan ciri utama memiliki ekstensi .c). File include (umumnya memiliki ekstensi .h, misalnya stdio.h, atau biasa disebut dengan file judul (header file) berisi kode yang akan dilibatkan dalam program (pada program tertentu bisa saja tidak melibatkan file include). Berikutnya, kode dalam file porgam sumber maupun kode pada file include akan dikompilasi oleh compiler menjadi kode objek. Kode objek ini disimpan pada file yang biasanya berekstensi .obj atau .o (bergantung kepada lingkungan/environmentsystem operasi yang dipakai). Kode objek berbentuk kode mesin, oleh karena itu tidak dapat dibaca oleh pemrogram. Akan tetapi kode ini sendiri juga belum bisa dipahami komputer.Supaya bisa dimengerti oleh computer, maka kode objek bersama-sama dengan kode objek yang lain (kalau ada) dan isi file pustaka (library file, yaitu file yang berisi fungsi-fungsi untuk melaksanakan tugas tertentu. File ini disediakan oleh pembuat compiler, biasanya memiliki ekstensi .lib) perlu dikaitkan (linking) dengan menggukana linker, membentuk sebuah progam yang executable, yang biasanya berekstensi .exe

Perbedaan Compiler dan Interpreter:


1. Kalau hendak menjalankan program hasil kompilasi bisa dilakukan tanpa kode sumber. Kalau interpreter butuh kode sumber. 2. Kalau 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. Kalau 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. 4. Interpreter cocok untuk membuat / menguji coba modul / sub-routine / program-program kecil. Kalau 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 / tidak bisa dioptimasikan.

Anda mungkin juga menyukai