TEKNIK KOMPILASI
1/52
Pendahuluan
2/52
3/52
Bahasa Assembly merupakan bentuk simbolik dari bahasa mesin. Kode misalnya ADD, MUL, dsb
Bahasa tingkat tinggi (user oriented) lebih banyak memberikan fungsi kontrol program, kalang, block, dan prosedur.
Bahasa problem oriented sering juga dimasukkan sebagai
bahasa tingkat tinggi, misalnya SQL, Myob, dsb.
Bahasa Pemrograman
Bahasa mesin merupakan bentuk terendah dari bahasa komputer. Instruksi direpresentasikan dalam kode numerik.
Bahasa Pemrograman
Translator
4/52
Translator melakukan pengubahan source code / source program ke dalam target code / object code
Translator
Interpreter
Compiler
Assembler
5/52
Jenis Translator: COMPILER
6/52
Jenis Translator: Interpreter
7/52
Jenis Translator: ASSEMBLER
Tahapan Translator
8/52
Analisa Leksikal
Analisa Sintaks
Intermediate Code
Generate Code
Pengelolaan Tabel
Program Sumber
Penanganan Kesalahan
Program Target
Assembler
9/52
Proses Sebuah Kompilasi pada Bahasa Assembler
Source Code
Object Code
| Assembler | |
File Target
| |
| Lingker |
.ASM
.OBJ
.EXE / .COM
10/52
Compiler
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
Bahasa sasaran
Pesan-pesan kesalahan (error messages)
Proses Kompilasi dikelompokkan kedalam dua kelompok besar :
11/52
Penganalisa Leksikal (scanner)
Penganalisa Sintaks (parser)
Penganalisa
Semantik Pembangkit Kode antara
Pembentuk kode
Pengoptimal kode
Program
Sumber
Program Sumber
Program
Sasaran
Program Sasaran
TABEL
SIMBOL
TABEL SIMBOL
ANALISA
SINTESA
Bagan pokok proses kompilasi
Blok Diagram
Keterangan
12/52
13/52
Source Code 1
Source Code 2
Source Code n
Object Code 1
Object Code 2
Object Code n
| Compiler 1 | |
| Compiler 2 | |
| Compiler n | |
Lingker
Executable
Library Object Code
Pembuatan Compiler
14/52
Pembuatan kompilator dapat dilakukan dengan :
2. Bahasa tingkat tinggi yang sama pada mesin yang berbeda
Misal, pembuatan kompilator C untuk DOS, berdasar C pada UNIX
3. Bootstrap
Pembuatan kompilator secara bertingkat.
4. Bahasa Assembly
Bahasa Assembly bisa dan biasa digunakan sebagai tahap awal pada proses pembuatan sebuah kompilator
5. Bahasa Mesin
Tingkat kesulitannya tinggi, bahkan hampir mustahil dilakukan
15/52
16/52
Lexical Analysis
17/52
Lexical Analysis
18/52
Lexical Analysis
19/52
Lexical Analysis
20/52
Lexical Analysis
21/52
22/52
Lexical Analysis
23/52
Syntax Analysis
24/52
Tugas dari Syntax Analizer adalah:
25/52
Statement: (A+B)*(C+D)
26/52
Syntax Tree
27/52
28/52
Penurunan untuk menghasilkan
string aabbb
29/52
Parsing atau Proses Penurunan
30/52
31/52
Metode Parsing
32/52
Parsing digolongkan menjadi :
33/52
Parsing: BRUTE FORCE
34/52
Parsing: BRUTE FORCE
35/52
36/52
Kelemahan metode BRUTE FORCE
37/52
38/52
39/52
40/52
41/52
42/52
43/52
44/52
45/52
46/52
47/52
48/52
Parsing: RECURSIVE DESCENT PARSER
49/52
50/52