Dokumen ini membahas tentang teknik kompilasi. Ia menjelaskan tujuan pembelajaran tentang memahami proses kompilasi dan pembuatan compiler. Dokumen ini juga menjelaskan proses kompilasi meliputi analisis leksikal, sintaks, semantik, dan sintesis untuk menghasilkan kode objek dari kode sumber. Metode pembuatan compiler juga dijelaskan meliputi menggunakan bahasa mesin, assembly, bahasa tingkat tinggi lain
1. Teknik Kompilasi
Abdul Wahid, ST, M.Kom
Alamat : Jl. Mawar No. 22 A Sungguminasa
Tlp. 08152520599
Email : wahid@unm.ac.id / de_wahid@yahoo.com
FB : Abdul Wahid Yunus
Twitter :@wahid_yunus
Website : blog.unm.ac.id/wahid
Wahidlewa.worpress.com
Pendahuluan 1
2. Pendahuluan
Tujuan Pembelajaran :
1. Mahasiswa memahami cara kerja serta proses yang terjadi pada sebuah Compiler
2. Mahasiswa memahami konsep pembuatan sebuah Compiler
3. Mahasiswa mengetahui bagaimana sebuah bahasa pemrograman dapat diterjemahkan
oleh mesin.
Metari Pembelajaran
1. Bentuk-bentuk karakter dan kelas Grammar.
2. Ekspresi Regular dan Automata
3. Analisa Leksikal sebagai tahap awal kompilasi
4. Analisa Sintaks, bentuk-bentuk derivasi serta implementasi parsing.
5. Analisa Semantik dan tahapan Sintesa.
6. Penanganan kesalahan kompilasi dan fungsi tabel informasi.
2
Pendahuluan
3. 1. Bahasa Pemrograman
Bahasa
mesin
Bahasa
Assembly
Bahasa
Pemrograman
Bahasa
Tingkat tinggi
Bahasa
Problem Oriented
3
Pendahuluan
4. Bahasa tingkat tinggi
Bahasa mesin merupakan bentuk
(user oriented) lebih
terendah dari bahasa komputer.
banyak memberikan fungsi
Instruksi direpresentasikan dalam
kontrol program, kalang,
kode numerik.
block, dan prosedur.
Program
Language
Bahasa problem oriented
Bahasa Assembly merupakan bentuk sering juga dimasukkan sebagai
simbolik dari bahasa mesin. Kode bahasa tingkat tinggi,
misalnya ADD, MUL, dsb misalnya SQL, Myob, dsb.
4
Pendahuluan
5. 2. Translator
Translator melakukan pengubahan source code / source program kedalam target code / object code
Interpreter dan Compiler termasuk dalam kategori translator.
Interpreter
Tidak membangkitkan object code
Translator Source code dan data diproses bersamaan
Contoh, BASICA, SPSS, DBASE III
Assembler
Compiler
Source Code adalah bahasa tingkat tinggi. Source Code adalah bahasa Assembly
Object Code adalah bahasa mesin atau assembly Object Code adalah bahasa mesin
Source code dan data diproses tidak bersamaan Contoh, Turbo Assembler
Contoh, PASCAL, C 5
Pendahuluan
6. Interpreter
Penanganan
Kesalahan
Program Analisa Analisa Intermediate Hasil
Sumber Interpretasi Operasi
Leksikal Sintaks Program
Pengelolaan
Tabel
6
Pendahuluan
7. Assembler
File
Source Assembler Object Code Lingker Target
Code
.ASM .OBJ .EXE / .COM
Proses Sebuah Kompilasi pada
Bahasa Assembler
• Source Code adalah bahasa Assembler, Object Code adalah bahasa mesin
• Object Code dapat berupa file object (.OBJ), file .EXE, atau file .COM
• Contoh : Turbo Assembler (dari IBM) dan Macro Assembler (dari Microsoft)
7
Pendahuluan
8. Compiler
Definisi : Kompilator (compiler) adalah sebuah program yang membaca suatu program yang ditulis
Dalam suatu bahasa sumber (source language) dan menterjemahkannya kedalam suatu
bahasa sasaran (target language)
Proses kompilasi dapat digambarkan melalui sebuah blok diagram sebagai berikut :
Program sumber Compiler Bahasa sasaran
Pesan-pesan kesalahan
(error messages)
Proses Kompilasi dikelompokkan kedalam dua kelompok besar :
1. Analisa : Program sumber dipecah-pecah dan dibentuk menjadi bentuk antara (Intermediate
Representation )
2. Sintesa : Membangun program sasaran yang diinginkan dari bentuk antara
8
Pendahuluan
9. Blok Diagram
Program Program
Sumber Sasaran
ANALISA SINTESA
Penganalisa
Penganalisa Penganalisa Semantik Pembentuk Pengoptimal
Leksikal Sintaks Pembangkit kode kode
(scanner) (parser) Kode antara
TABEL
SIMBOL
Bagan pokok proses kompilasi
9
Pendahuluan
10. Keterangan
1. Program Sumber ditulis dalam bahasa sumber, misal Pascal, Assembler, dsb
2. Program Sasaran dapat berupa bahasa pemrograman lain atau bahasa mesin pada
suatu komputer
3. Scanner : Memecah program sumber menjadi besaran leksik/token
4. Parser : Memeriksa kebenaran dan urutan kemunculan token
5. Penganalisa semantik : Melakukan analisa semantik, biasanya dalam realisasi akan
digabungkan Dengan intermediate code generator (bagian yang berfungsi
membangkitkan kode antara)
6. Pembentuk Kode : Membangkitkan kode objek
7. Pengoptimal Kode : Memperkecil hasil dan mempercepat proses
8. Tabel : Menyimpan semua informasi yang berhubungan dengan proses kompilasi
10
Pendahuluan
11. Library Object
Code
Source Object
Code 1 Compiler 1
Code 1
Source Object
Code 2 Compiler 2
Code 2
Lingker Executable
Source Object
Code n Compiler n
Code n
• Pembentukan file Executable berdasar dari beberapa Source Code
• Source Code dapat terdiri dari satu atau lebih behasa pemrograman.
11
Pendahuluan
12. Pembuatan Compiler
Pembuatan kompilator dapat dilakukan dengan :
1. Bahasa Mesin
Tingkat kesulitannya tinggi, bahkan hampir mustahil dilakukan
2. Bahasa Assembly
Bahasa Assembly bisa dan biasa digunakan sebagai tahap awal pada proses pembuatan
sebuah kompilator
3. Bahasa Tingkat Tinggi lain pada ,mesin yang sama
Proses pembuatan kopilator akan lebih mudah
4. Bahasa tingkat tinggi yang sama pada mesin yang berbeda
Misal, pembuatan kompilator C untuk DOS, berdasar C pada UNIX
5. Bootstrap
Pembuatan kompilator secara bertingkat.
12
Pendahuluan