Konsep Teknik Kompilasi
Konsep Teknik Kompilasi
TEKNIK KOMPILASI
1/52
Teknik Kompilasi II
MATERI
2/52
Teknik Kompilasi II
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.
3/52
Teknik Kompilasi II
1. Bahasa Pemrograman
Bahasa
mesin
Bahasa
Assembly
Bahasa
Pemrograman
Bahasa
Tingkat tinggi
Bahasa
Problem Oriented
4/52
Teknik Kompilasi II
Program
Language
5/52
Teknik Kompilasi II
2. Translator
Translator melakukan pengubahan source code / source program kedalam target code / object code
Interpreter
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 6/52
Teknik Kompilasi II
Interpreter
Penanganan
Kesalahan
Pengelolaan
Tabel
7/52
Teknik Kompilasi II
Assembler
Source File
Assembler Object Code Lingker Target
Code
· 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)
8/52
Teknik Kompilasi II
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 :
Pesan-pesan kesalahan
(error messages)
9/52
Teknik Kompilasi II
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
10/52
Teknik Kompilasi II
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
11/52
Teknik Kompilasi II
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
12/52
Teknik Kompilasi II
Pembuatan Compiler
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
5. Bootstrap
Pembuatan kompilator secara bertingkat.
13/52
Teknik Kompilasi II
14/52
Teknik Kompilasi II
15/52
Teknik Kompilasi II
16/52
Teknik Kompilasi II
17/52
Teknik Kompilasi II
18/52
Teknik Kompilasi II
Lexical Analysis
19/52
Teknik Kompilasi II
Lexical Analysis
20/52
Teknik Kompilasi II
Lexical Analysis
21/52
Teknik Kompilasi II
Lexical Analysis
22/52
Teknik Kompilasi II
Lexical Analysis
23/52
Teknik Kompilasi II
24/52
Teknik Kompilasi II
Lexical Analysis
25/52
Teknik Kompilasi II
Syntax Analysis
26/52
Teknik Kompilasi II
27/52
Teknik Kompilasi II
Statement: (A+B)*(C+D)
28/52
Teknik Kompilasi II
Syntax Tree
29/52
Teknik Kompilasi II
30/52
Teknik Kompilasi II
31/52
Teknik Kompilasi II
33/52
Teknik Kompilasi II
Metode Parsing
34/52
Teknik Kompilasi II
35/52
Teknik Kompilasi II
36/52
Teknik Kompilasi II
37/52
Teknik Kompilasi II
38/52
Teknik Kompilasi II
39/52
Teknik Kompilasi II
40/52
Teknik Kompilasi II
41/52
Teknik Kompilasi II
42/52
Teknik Kompilasi II
43/52
Teknik Kompilasi II
44/52
Teknik Kompilasi II
45/52
Teknik Kompilasi II
46/52
Teknik Kompilasi II
47/52
Teknik Kompilasi II
48/52
Teknik Kompilasi II
49/52
Teknik Kompilasi II
50/52
Teknik Kompilasi II
51/52
Teknik Kompilasi II
52/52