Download - Teknik Kompilasi II
![Page 1: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/1.jpg)
Teknik Kompilasi II
1/52Ernastuti & Sulistyo
TEKNIK KOMPILASI
Ernastuti & Sulistyo P
![Page 2: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/2.jpg)
Teknik Kompilasi II
2/52Ernastuti & Sulistyo
MATERI
![Page 3: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/3.jpg)
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.
![Page 4: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/4.jpg)
Teknik Kompilasi II
4/52Ernastuti & Sulistyo
1. Bahasa Pemrograman
BahasaPemrograman
Bahasamesin
BahasaAssembly
BahasaTingkat tinggi
BahasaProblem Oriented
![Page 5: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/5.jpg)
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
![Page 6: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/6.jpg)
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
![Page 7: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/7.jpg)
Teknik Kompilasi II
7/52Ernastuti & Sulistyo
Interpreter
AnalisaLeksikal
AnalisaSintaks
Intermediate Program Interpretasi
PengelolaanTabel
ProgramSumber
PenangananKesalahan
HasilOperasi
![Page 8: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/8.jpg)
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
![Page 9: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/9.jpg)
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
![Page 10: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/10.jpg)
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
![Page 11: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/11.jpg)
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
![Page 12: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/12.jpg)
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.
![Page 13: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/13.jpg)
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.
![Page 14: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/14.jpg)
Teknik Kompilasi II
14/52Ernastuti & Sulistyo
Jenis Translator: ASSEMBLER
![Page 15: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/15.jpg)
Teknik Kompilasi II
15/52Ernastuti & Sulistyo
Jenis Translator: COMPILER
![Page 16: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/16.jpg)
Teknik Kompilasi II
16/52Ernastuti & Sulistyo
Jenis Translator: Interpreter
![Page 17: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/17.jpg)
Teknik Kompilasi II
17/52Ernastuti & Sulistyo
![Page 18: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/18.jpg)
Teknik Kompilasi II
18/52Ernastuti & Sulistyo
![Page 19: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/19.jpg)
Teknik Kompilasi II
19/52Ernastuti & Sulistyo
Lexical Analysis
![Page 20: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/20.jpg)
Teknik Kompilasi II
20/52Ernastuti & Sulistyo
Lexical Analysis
![Page 21: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/21.jpg)
Teknik Kompilasi II
21/52Ernastuti & Sulistyo
Lexical Analysis
![Page 22: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/22.jpg)
Teknik Kompilasi II
22/52Ernastuti & Sulistyo
Lexical Analysis
![Page 23: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/23.jpg)
Teknik Kompilasi II
23/52Ernastuti & Sulistyo
Lexical Analysis
![Page 24: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/24.jpg)
Teknik Kompilasi II
24/52Ernastuti & Sulistyo
![Page 25: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/25.jpg)
Teknik Kompilasi II
25/52Ernastuti & Sulistyo
Lexical Analysis
![Page 26: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/26.jpg)
Teknik Kompilasi II
26/52Ernastuti & Sulistyo
Syntax Analysis
![Page 27: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/27.jpg)
Teknik Kompilasi II
27/52Ernastuti & Sulistyo
Tugas dari Syntax Analizer adalah:
![Page 28: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/28.jpg)
Teknik Kompilasi II
28/52Ernastuti & Sulistyo
Statement: (A+B)*(C+D)
![Page 29: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/29.jpg)
Teknik Kompilasi II
29/52Ernastuti & Sulistyo
Syntax Tree
![Page 30: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/30.jpg)
Teknik Kompilasi II
30/52Ernastuti & Sulistyo
Penurunan untuk menghasilkanstring aabbb
![Page 31: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/31.jpg)
Teknik Kompilasi II
31/52Ernastuti & Sulistyo
![Page 32: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/32.jpg)
Teknik Kompilasi II
32/52Ernastuti & Sulistyo
Parsing atau Proses Penurunan
![Page 33: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/33.jpg)
Teknik Kompilasi II
33/52Ernastuti & Sulistyo
![Page 34: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/34.jpg)
Teknik Kompilasi II
34/52Ernastuti & Sulistyo
Metode Parsing
![Page 35: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/35.jpg)
Teknik Kompilasi II
35/52Ernastuti & Sulistyo
Parsing digolongkan menjadi :
![Page 36: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/36.jpg)
Teknik Kompilasi II
36/52Ernastuti & Sulistyo
Parsing: BRUTE FORCE
![Page 37: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/37.jpg)
Teknik Kompilasi II
37/52Ernastuti & Sulistyo
Parsing: BRUTE FORCE
![Page 38: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/38.jpg)
Teknik Kompilasi II
38/52Ernastuti & Sulistyo
![Page 39: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/39.jpg)
Teknik Kompilasi II
39/52Ernastuti & Sulistyo
Kelemahan metode BRUTE FORCE
![Page 40: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/40.jpg)
Teknik Kompilasi II
40/52Ernastuti & Sulistyo
![Page 41: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/41.jpg)
Teknik Kompilasi II
41/52Ernastuti & Sulistyo
![Page 42: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/42.jpg)
Teknik Kompilasi II
42/52Ernastuti & Sulistyo
![Page 43: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/43.jpg)
Teknik Kompilasi II
43/52Ernastuti & Sulistyo
![Page 44: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/44.jpg)
Teknik Kompilasi II
44/52Ernastuti & Sulistyo
![Page 45: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/45.jpg)
Teknik Kompilasi II
45/52Ernastuti & Sulistyo
![Page 46: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/46.jpg)
Teknik Kompilasi II
46/52Ernastuti & Sulistyo
![Page 47: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/47.jpg)
Teknik Kompilasi II
47/52Ernastuti & Sulistyo
![Page 48: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/48.jpg)
Teknik Kompilasi II
48/52Ernastuti & Sulistyo
![Page 49: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/49.jpg)
Teknik Kompilasi II
49/52Ernastuti & Sulistyo
![Page 50: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/50.jpg)
Teknik Kompilasi II
50/52Ernastuti & Sulistyo
![Page 51: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/51.jpg)
Teknik Kompilasi II
51/52Ernastuti & Sulistyo
Parsing: RECURSIVE DESCENT PARSER
![Page 52: Teknik Kompilasi II](https://reader033.vdokumen.com/reader033/viewer/2022042512/557202324979599169a31fb6/html5/thumbnails/52.jpg)
Teknik Kompilasi II
52/52Ernastuti & Sulistyo
• Lanjut ke TEKNIK KOMPILASI III. ppt