teknik kompilasidimas_nugeroho.staff.gunadarma.ac.id/downloads/files/... · teknik kompilasi ii...
TRANSCRIPT
-
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
TEKNIK KOMPILASIMATERI Jenis Translator: ASSEMBLERJenis Translator: COMPILERJenis Translator: InterpreterLexical AnalysisStatement: (A+B)*(C+D)Syntax TreePenurunan untuk menghasilkan string aabbbParsing atau Proses PenurunanMetode ParsingParsing digolongkan menjadi :