Teknik Kompilasi “Translator” Ahmad Apandi, ST Teknik Kompilasi “Translator”
Ahmad Apandi, ST Tujuan Mahasiswa memahami cara kerja serta proses yang terjadi pada sebuah Compiler. Mahasiswa memahami konsep pembuatan sebuah Compiler. Mahasiswa mengetahui bagaimana sebuah bahasa pemrograman dapat diterjemahkan oleh mesin.
ARTI KATA TEKNIK KOMPILASI Ahmad Apandi, ST ARTI KATA TEKNIK KOMPILASI Teknik : Metode atau Cara Kompilasi : Proses menggabungkan serta menterjermahkan sesuatu (source program) menjadi bentuk lain Compile : To translate a program written in a high-level programming language into machine language.
Bahasa Pemrograman Bahasa mesin Bahasa Assembly Bahasa Pemrograman Ahmad Apandi, ST Bahasa Pemrograman Bahasa mesin Bahasa Assembly Bahasa Pemrograman Bahasa Tingkat tinggi Bahasa Problem Oriented
Bahasa Pemrograman Bahasa mesin merupakan bentuk Ahmad Apandi, ST Bahasa Pemrograman Bahasa tingkat tinggi (user oriented) lebih banyak memberikan fungsi kontrol program, kalang, block, dan prosedur. Bahasa mesin merupakan bentuk terendah dari bahasa komputer. Instruksi direpresentasikan dalam kode numerik. Program Language Bahasa problem oriented sering juga dimasukkan sebagai bahasa tingkat tinggi, misalnya SQL, Myob, dsb. Bahasa Assembly merupakan bentuk simbolik dari bahasa mesin. Kode misalnya ADD, MUL, dsb
Ahmad Apandi, ST Translator Translator melakukan pengubahan source code / source program kedalam target code / object code Interpreter dan Compiler termasuk dalam kategori translator. Tidak membangkitkan object code. Source code dan data diproses bersamaan. Contoh: BASICA, SPSS, DBASE III. Interpreter Translator Assembler Compiler Source Code adalah bahasa Assembly Object Code adalah bahasa mesin. Contoh: Turbo Assembler. Source Code adalah bahasa tingkat tinggi. Object Code adalah bahasa mesin atau assembly.
Mengapa perlu Translator ? Ahmad Apandi, ST Mengapa perlu Translator ? Bahasa mesin adalah bahasa bentuk bahasa terendah komputer, berhubungan langsung dengan bagian bagian komputer seperti bits, register & sangat primitive Jawaban atas pertanyaan ini akan membingungkan bagi programmer yang membuat program dengan bahasa mesin. Bahasa mesin adalah tidak lebih dari urutan 0 dan 1 Bagaimana dengan orang tidak mengerti bahasa mesin
Compiler & Interpreter Ahmad Apandi, ST Compiler & Interpreter Jika sebuah Translator menerjemahkan bahasa pemrograman tingkat tinggi menjadi bahasa rakitan atau bahasa mesin, ini disebut COMPILER. Contoh : ADA, ALGOL, BASIC, COBOL, FORTRAN, PL/I, C/C++ Jika sebuah Translator menerjemahkan bahasa pemrograman tingkat tinggi menjadi intermediate kode yang akan langsung di jalankan, ini disebut INTERPRETER. Contoh : APL, ASP, CYBOL, LISP, Smalltalk, PHP dan Perl
Perbedaan Compiler & Interpreter Ahmad Apandi, ST Perbedaan Compiler & Interpreter Jika hendak menjalankan program hasil kompilasi dapat dilakukan tanpa butuh kode sumber. Sedangkan interpreter butuh kode sumber. Pada compiler terdapat 2 tahap, yaitu parsing ( pembuatan kode objek ) dan linking ( penggabungan kode objek dengan library ) . Sedangkan interpreter tidak ada proses terpisah. Pada kompiler bisa dilakukan optimisasi / peningkatan kualitas kode yang bisa dijalankan. Sedangkan interpreter susah atau bahkan tidak bisa dioptimasikan.
Compiler & Interpreter Ahmad Apandi, ST Compiler & Interpreter
Ahmad Apandi, ST Proses Kompilasi Proses Kompilasi dikelompokkan kedalam dua kelompok besar : Analisa : Program sumber dipecah-pecah dan dibentuk menjadi bentuk antara (Intermediate Representation ). Sintesa : Membangun program sasaran yang diinginkan dari bentuk antara.
Blok Diagram Proses Kompilasi Ahmad Apandi, ST Blok Diagram Proses Kompilasi Program Sumber Program Sasaran ANALISA SINTESA Penganalisa Semantik Pembangkit Kode antara Penganalisa Leksikal (scanner) Penganalisa Sintaks (parser) Pembentuk kode Pengoptimal kode TABEL SIMBOL Bagan pokok proses kompilasi
Ahmad Apandi, ST Keterangan Program Sumber ditulis dalam bahasa sumber, misal Pascal, Assembler, dsb. Program Sasaran dapat berupa bahasa pemrograman lain atau bahasa mesin pada suatu komputer. Scanner : Memecah program sumber menjadi besaran leksik/token. Penganalisa semantik : Melakukan analisa semantik, biasanya dalam realisasi akan digabungkan Dengan intermediate code generator (bagian yang berfungsi membangkitkan kode antara). Pembentuk Kode : Membangkitkan kode objek Pengoptimal Kode : Memperkecil hasil dan mempercepat proses. Tabel : Menyimpan semua informasi yang berhubungan dengan proses kompilasi.