Teknik Kompilasi II
Transcript of Teknik Kompilasi II
Teknik Kompilasi II
1/52Ernastuti & Sulistyo
TEKNIK KOMPILASI
Ernastuti & Sulistyo P
Teknik Kompilasi II
2/52Ernastuti & Sulistyo
MATERI
Teknik Kompilasi II
3/52Ernastuti & Sulistyo
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 diterjemahkanoleh 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.
Teknik Kompilasi II
4/52Ernastuti & Sulistyo
1. Bahasa Pemrograman
BahasaPemrograman
Bahasamesin
BahasaAssembly
BahasaTingkat tinggi
BahasaProblem Oriented
Teknik Kompilasi II
5/52Ernastuti & Sulistyo
Bahasa mesin merupakan bentukterendah dari bahasa komputer.
Instruksi direpresentasikan dalamkode numerik.
Bahasa Assembly merupakan bentuksimbolik dari bahasa mesin. Kode
misalnya ADD, MUL, dsb
Bahasa tingkat tinggi(user oriented) lebih banyakmemberikan fungsi kontrol
program, kalang, block, danprosedur.
Bahasa problem oriented sering juga dimasukkan sebagai
bahasa tingkat tinggi,misalnya SQL, Myob, dsb.
Program Language
Teknik Kompilasi II
6/52Ernastuti & Sulistyo
2. Translator
Translator melakukan pengubahan source code / source program kedalam target code / object code
Interpreter dan Compiler termasuk dalam kategori translator.
Translator
Interpreter
Compiler
Tidak membangkitkan object code
Source code dan data diproses bersamaan
Contoh, BASICA, SPSS, DBASE III
Source Code adalah bahasa tingkat tinggi.
Object Code adalah bahasa mesin atau assembly
Source code dan data diproses tidak bersamaan
Contoh, PASCAL, C
Assembler
Source Code adalah bahasa Assembly
Object Code adalah bahasa mesin
Contoh, Turbo Assembler
Teknik Kompilasi II
7/52Ernastuti & Sulistyo
Interpreter
AnalisaLeksikal
AnalisaSintaks
Intermediate Program Interpretasi
PengelolaanTabel
ProgramSumber
PenangananKesalahan
HasilOperasi
Teknik Kompilasi II
8/52Ernastuti & Sulistyo
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)
SourceCode
Object CodeAssemblerFile
TargetLingker
.ASM .OBJ .EXE / .COM
Proses Sebuah Kompilasi padaBahasa Assembler
Teknik Kompilasi II
9/52Ernastuti & Sulistyo
Compiler
Compiler
Definisi : Kompilator (compiler) adalah sebuah program yang membaca suatu program yang ditulisDalam suatu bahasa sumber (source language) dan menterjemahkannya kedalam suatubahasa 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 :1. Analisa : Program sumber dipecah-pecah dan dibentuk menjadi bentuk antara (Intermediate
Representation )2. Sintesa : Membangun program sasaran yang diinginkan dari bentuk antara
Teknik Kompilasi II
10/52Ernastuti & Sulistyo
PenganalisaLeksikal
(scanner)
PenganalisaSintaks(parser)
PenganalisaSemantik
PembangkitKode antara
Pembentukkode
Pengoptimalkode
ProgramSumber
ProgramSumber
ProgramSasaranProgramSasaran
TABELSIMBOLTABEL
SIMBOL
ANALISA SINTESA
Bagan pokok proses kompilasi
Blok Diagram
Teknik Kompilasi II
11/52Ernastuti & Sulistyo
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
Keterangan
Teknik Kompilasi II
12/52Ernastuti & Sulistyo
SourceCode 1
SourceCode 2
SourceCode n
ObjectCode 1
ObjectCode 2
ObjectCode n
Compiler 1
Compiler 2
Compiler n
Lingker Executable
Library Object Code
• Pembentukan file Executable berdasar dari beberapa Source Code
• Source Code dapat terdiri dari satu atau lebih behasa pemrograman.
Teknik Kompilasi II
13/52Ernastuti & Sulistyo
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 pembuatansebuah 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.
Teknik Kompilasi II
14/52Ernastuti & Sulistyo
Jenis Translator: ASSEMBLER
Teknik Kompilasi II
15/52Ernastuti & Sulistyo
Jenis Translator: COMPILER
Teknik Kompilasi II
16/52Ernastuti & Sulistyo
Jenis Translator: Interpreter
Teknik Kompilasi II
17/52Ernastuti & Sulistyo
Teknik Kompilasi II
18/52Ernastuti & Sulistyo
Teknik Kompilasi II
19/52Ernastuti & Sulistyo
Lexical Analysis
Teknik Kompilasi II
20/52Ernastuti & Sulistyo
Lexical Analysis
Teknik Kompilasi II
21/52Ernastuti & Sulistyo
Lexical Analysis
Teknik Kompilasi II
22/52Ernastuti & Sulistyo
Lexical Analysis
Teknik Kompilasi II
23/52Ernastuti & Sulistyo
Lexical Analysis
Teknik Kompilasi II
24/52Ernastuti & Sulistyo
Teknik Kompilasi II
25/52Ernastuti & Sulistyo
Lexical Analysis
Teknik Kompilasi II
26/52Ernastuti & Sulistyo
Syntax Analysis
Teknik Kompilasi II
27/52Ernastuti & Sulistyo
Tugas dari Syntax Analizer adalah:
Teknik Kompilasi II
28/52Ernastuti & Sulistyo
Statement: (A+B)*(C+D)
Teknik Kompilasi II
29/52Ernastuti & Sulistyo
Syntax Tree
Teknik Kompilasi II
30/52Ernastuti & Sulistyo
Penurunan untuk menghasilkanstring aabbb
Teknik Kompilasi II
31/52Ernastuti & Sulistyo
Teknik Kompilasi II
32/52Ernastuti & Sulistyo
Parsing atau Proses Penurunan
Teknik Kompilasi II
33/52Ernastuti & Sulistyo
Teknik Kompilasi II
34/52Ernastuti & Sulistyo
Metode Parsing
Teknik Kompilasi II
35/52Ernastuti & Sulistyo
Parsing digolongkan menjadi :
Teknik Kompilasi II
36/52Ernastuti & Sulistyo
Parsing: BRUTE FORCE
Teknik Kompilasi II
37/52Ernastuti & Sulistyo
Parsing: BRUTE FORCE
Teknik Kompilasi II
38/52Ernastuti & Sulistyo
Teknik Kompilasi II
39/52Ernastuti & Sulistyo
Kelemahan metode BRUTE FORCE
Teknik Kompilasi II
40/52Ernastuti & Sulistyo
Teknik Kompilasi II
41/52Ernastuti & Sulistyo
Teknik Kompilasi II
42/52Ernastuti & Sulistyo
Teknik Kompilasi II
43/52Ernastuti & Sulistyo
Teknik Kompilasi II
44/52Ernastuti & Sulistyo
Teknik Kompilasi II
45/52Ernastuti & Sulistyo
Teknik Kompilasi II
46/52Ernastuti & Sulistyo
Teknik Kompilasi II
47/52Ernastuti & Sulistyo
Teknik Kompilasi II
48/52Ernastuti & Sulistyo
Teknik Kompilasi II
49/52Ernastuti & Sulistyo
Teknik Kompilasi II
50/52Ernastuti & Sulistyo
Teknik Kompilasi II
51/52Ernastuti & Sulistyo
Parsing: RECURSIVE DESCENT PARSER
Teknik Kompilasi II
52/52Ernastuti & Sulistyo
• Lanjut ke TEKNIK KOMPILASI III. ppt