Pengenalan Compiler FARA AGUSTINE PUTRI ARIZAL BUDI WIBOWO MUHAMMAD RAFLI AINUN
(4611417042) (4611417043) (4611417045)
TEKNIK KOMPILASI Teknik Kompilasi merupakan teknik dalam melakukan pembacaan suatu program yang ditulis dalam bahasa sumber, kemudian diterjemahkan ke dalam suatu bahasa lain yang disebut bahasa sasaran. Dalam melakukan proses penerjemahan tersebut, sudah barang tentu kompilator akan melaporkan adanya keanehan-keanehan atau kesalahan yang mungkin ditemukannya. Proses penerjemahan yang dilakukan oleh kompilator ini disebut proses kompilasi (compiling).
BAHASA PEMROGRAMAN Dalam lingkungan pemrograman komputer, bahasa pemrograman bertindak sebagai sarana komunikasi antara manusia dan permasalahannya dengan komputer yang dipakai untuk membantu memperoleh pemecahan. Jenis bahasa pemrograman berdasarkan tingkat ketergantungannya dengan mesin: 1.
Bahasa Mesin
2.
Bahasa Assembly
3.
Bahasa Tingkat tinggi ( User oriented dan Problem Oriented)
KOMPILATOR / COMPILER Kompilator atau dalam bahasa inggris disebut Compiler adalah sebuah program komputer yang berguna untuk menerjemahkan bahasa pemrograman tertentu menjadi Bahasa pemrograman lainnya. Istilah kompilator biasanya digunakan untuk menerjemahkan bahasa-bahasa pemrograman tinggi (seperti Pascal , C++ , Visual Basic , Java , dll.) menjadi bahasa mesin.
Arsitektur kompilator modern biasanya bukan lagi merupakan program tunggal namun merupakan rangkaian komunikasi antar program dengan tugas spesifik masing-masing. Program-program tersebut beserta tugasnya secara umum terdiri dari: •
Kompilator itu sendiri, yang menerima kode sumber dan menghasilkan bahasa tingkat rendah (assembly)
•
Assembler, yang menerima keluaran kompilator dan menghasilkan berkas objek dalam bahasa mesin
•
Linker, yang menerima berkas objek keluaran assembler untuk kemudian digabungkan dengan pustaka-pustaka yang diperlukan dan menghasilkan program yang dapat dieksekusi (executable)
Kompilator melakukan proses kompilasi dengan cara menganalisis kode sumber secara keseluruhan, sehingga waktu yang dibutuhkan untuk melakukan kompilasi lebih lama, namun hasilnya lebih cepat dalam proses eksekusi daripada program yang dibuat dengan menggunakan teknik interpretasi dengan interpreter.
MODEL KOMPILATOR Sebuah kompilator umumnya memiliki 2 tugas pokok : 1. Fungsi Analisis Fungsi analisis biasa disebut sebagai Front End. Tugasnya melakukan dekomposisi program sumber menjadi bagian – bagian dasarnya. 2. Fungsi Sintesis Fungsi sintesis biasa disebut sebagai Back End. Tugasnya melakukan pembangkitan dan optimasi program objek.
TAHAP – TAHAP COMPILE •
Pertama source code (program yang ditulis) dibaca ke memori computer).
•
Source code tersebut diubah menjadi objek code (bahasa Assembly).
•
Objek code di hubungkan dengan library yang dibutuhkan untuk membentuk file yang bisa dieksekusi.
ASSEMBLY Bahasa Rakitan atau biasa disebut assembly adalah bahasa pemrograman tingkat rendah yang digunakan dalam pemrograman computer , dan perangkat lainnya yang dapat deprogram. Bahasa rakitan mengimplementasikan representasi kode mesin dalam bentuk symbolsymbol yang mudah dipahami oleh manusia.
Pada bahasa rakitan , programmer umumnya menggunakan sebuah program utilitas yang disebut sebagai perakit yang dapat digunakan untuk menerjemahkan kode dalam bahasa rakitan ke dalam kode mesin.
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.
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.
PERBEDAAN INTERPRETER DENGAN COMPILER
Interpreter
1. Menerjemahkan instruksi per instruksi 2. Tidak menghasilkan objek program 3. Tidak menghasilkan executable program 4. Source program terus dipergunakan karena tidak menghasilkan executable program.
Compiler
1. Menerjemahkan secara keseluruhan sekaligus 2. Menghasilkan objek program 3. Menghasilkan executable program 4. Source program tidak dipergunakan lagi untuk menjalankan
TERIMA KASIH ATAS PERHATIANNYA