Handout TIF202 Ch 1 Pendahuluan
10/15/2015
Bab 1: Pendahuluan
Teori Komputasi
Agenda
• Teori Komputasi dan Teknik Kompilasi
• Translator
• Pembuatan Compiler
• Proses dan Tahapan Kompilasi
• Mutu Compiler
Fakultas Teknologi dan Desain
1-1 Informatika
Program Studi Teknik
Teori Komputasi |
Teori Komputasi dan Teknik Kompilasi
• Teknik: metode atau cara
• Komputasi: proses/pengolahan data yang dilakukan oleh
komputer.
• Teknik Komputasi:
“suatu metode/cara dalam melakukan proses/pengolahan
data yang dilakukan oleh komputer.”
Teori Komputasi |
2
Teori Komputasi dan Teknik Kompilasi
• Compile:
“to translate a program written in high-level programming
language into machine programming language (low-level
programming language).”
• Teknik Kompilasi:
“suatu metode/cara dalam menggabungkan serta
menterjemahkan program sumber (source program)
menjadi bentuk lain (machine language).:
3
Teori Komputasi |
4
1
10/15/2015
Translator
• Translator:
“suatu program yang mengambil input sebuah program yang
Jenis Translator
1. Assembler, source code bahasa assembly, object code
adalah bahasa mesin.
ditulis pada satu bahasa pemrograman (source language) ke
dalam bahasa lain (the object on target language).”
• Mengapa dalam proses komputasi dibutuhkan translator?
1. bahasa mesin adalah bentuk bahasa yang terendah pada
komputer;
2. bahasa mesin tidak lebih dari urutan bit 0 dan 1;
3. instruksi dalam bahasa mesin dapat dibentuk menjadi sebuah
microcode; dan
4. user tidak memahami bahasa mesin
Teori Komputasi |
*.asm
assembler
5
Teori Komputasi |
Jenis Translator
2. Compiler, source code bahasa high-level, object code
adalah bahasa mesin. Source code dan data diproses
terpisah.
compiler
Jenis Translator
data
execution
6
3. Interpreter, interpreter tidak menghasilkan bentuk object
code, hasil translasinya dalam bentuk internal, dimana
source code harus selalu ada.
data
source
code
object code
*.exe
interpreter
output
output
object
code
object
code
Teori Komputasi |
7
Teori Komputasi |
8
2
10/15/2015
Pembuatan Compiler
Pembuatan Compiler
• High-Level Language
• Bahasa Mesin
• bahasa yang lebih dikenal dan lebih dapat dipahami oleh manusia
karena statement (pernyataan) dibuat dalam bahasa yang mudah
dimengerti oleh manusia, yaitu bahasa Inggris;
• memberikan fasilitas dan kemudahan yang lebih banyak bagi
user ;
• program mudah untuk diperbaiki dan dikoreksi (debug); dan
• tidak bergantung pada salah satu jenis mesin komputer dan masih
membutuhkan translator.
• sukar;
• tergantung pada jenis mesin (semakin baik semakin rumit); dan
• lebih besar kemungkinan digunakan saat pembuatan assembler
• Assembly
• hasil program memiliki ukuran yang sangat kecil;
• sulit dipahami karena perintahnya singkat-singkat;
• fasilitas terbatas.
• Bootstrap
“Untuk membangun sesuatu yang besar maka dibuat dahulu bagian
intinya” (Niklaus Wirth).
Teori Komputasi |
9
Pembuatan Compiler
10
Proses dan Tahapan Kompilasi
• Terbagi ke dalam 2 kelompok besar:
Statement yang dibuat
oleh manusia pada
sebuah bahasa
pemrograman (source
language) dilihat
sebagai barisan bit 0
dan 1 oleh mesin
(machine language)
Teori Komputasi |
Teori Komputasi |
1. Analisa (Front End)
Melakukan dekomposisi program sumber (source code)
menjadi bagian-bagian dasarnya (intermediate
representation).
2. Sintesa (Back End)
Melakukan pembangkitan dan optimasi program objek
11
Teori Komputasi |
12
3
10/15/2015
Tahapan Proses Kompilasi
Proses dan Tahapan Kompilasi
1. Scanner
Source
Code
Memecah program sumber menjadi besaran leksikal/token
Contoh: Perhitungan aritmatika A + B
Object
Code
ANALYSIS
SYNTHESIS
A
Lexical
Analyzer
(Scanner)
Syntactic
Analyzer
(Parser)
Semantic
Analyzer
Intermmediate
Code Generator
Intermmediate
Code
Code
Generator
+
B
Code
Optimizer
id1 + id2
Tabel Simbol
Teori Komputasi |
13
Proses dan Tahapan Kompilasi
2. Parser
+
14
Proses dan Tahapan Kompilasi
3. Semantic Analyzer
Analisis yang membangkitkan kode antara (intermmediate
form)
Memeriksa kebenaran dan urutan kemunculan token
id1
Teori Komputasi |
id2
Id1 id2 +
Id1 id2 +
( + , id1 , id2 , T1)
Teori Komputasi |
15
Teori Komputasi |
16
4
10/15/2015
Proses dan Tahapan Kompilasi
4. Code Generator
Membangkitkan kode objek
Proses dan Tahapan Kompilasi
5. Code Optimizer
Memperkecil hasil dan mempercepat proses
( + , id1 , id2 ,T1)
LDA
ADD
STO
id1
id2
T1
Teori Komputasi |
LDA
ADD
STO
id1
id2
T1
LDA
ADD
STO
id1
id2
T1
17
Teori Komputasi |
Proses dan Tahapan Kompilasi
6. Pembuatan Object Code
Menuliskan dalam bahasa assembly
LDA
ADD
STO
18
Mutu Compiler
1. Kecepatan Waktu Proses
• Penulisan Algoritma Compiler
• Kompilator Compiler
id1
id2
T1
2. Mutu Program Object
• Ditentukan oleh ukuran dan kecepatan eksekusi program object
3. Integrated Environment
• Fasilitas-fasilitas yang terintegrasi yang dimiliki oleh sebuah
compiler
MOV T1, id1
ADD T1, id2
Teori Komputasi |
19
Teori Komputasi |
20
5
10/15/2015
Teori Komputasi
1-21
6
Bab 1: Pendahuluan
Teori Komputasi
Agenda
• Teori Komputasi dan Teknik Kompilasi
• Translator
• Pembuatan Compiler
• Proses dan Tahapan Kompilasi
• Mutu Compiler
Fakultas Teknologi dan Desain
1-1 Informatika
Program Studi Teknik
Teori Komputasi |
Teori Komputasi dan Teknik Kompilasi
• Teknik: metode atau cara
• Komputasi: proses/pengolahan data yang dilakukan oleh
komputer.
• Teknik Komputasi:
“suatu metode/cara dalam melakukan proses/pengolahan
data yang dilakukan oleh komputer.”
Teori Komputasi |
2
Teori Komputasi dan Teknik Kompilasi
• Compile:
“to translate a program written in high-level programming
language into machine programming language (low-level
programming language).”
• Teknik Kompilasi:
“suatu metode/cara dalam menggabungkan serta
menterjemahkan program sumber (source program)
menjadi bentuk lain (machine language).:
3
Teori Komputasi |
4
1
10/15/2015
Translator
• Translator:
“suatu program yang mengambil input sebuah program yang
Jenis Translator
1. Assembler, source code bahasa assembly, object code
adalah bahasa mesin.
ditulis pada satu bahasa pemrograman (source language) ke
dalam bahasa lain (the object on target language).”
• Mengapa dalam proses komputasi dibutuhkan translator?
1. bahasa mesin adalah bentuk bahasa yang terendah pada
komputer;
2. bahasa mesin tidak lebih dari urutan bit 0 dan 1;
3. instruksi dalam bahasa mesin dapat dibentuk menjadi sebuah
microcode; dan
4. user tidak memahami bahasa mesin
Teori Komputasi |
*.asm
assembler
5
Teori Komputasi |
Jenis Translator
2. Compiler, source code bahasa high-level, object code
adalah bahasa mesin. Source code dan data diproses
terpisah.
compiler
Jenis Translator
data
execution
6
3. Interpreter, interpreter tidak menghasilkan bentuk object
code, hasil translasinya dalam bentuk internal, dimana
source code harus selalu ada.
data
source
code
object code
*.exe
interpreter
output
output
object
code
object
code
Teori Komputasi |
7
Teori Komputasi |
8
2
10/15/2015
Pembuatan Compiler
Pembuatan Compiler
• High-Level Language
• Bahasa Mesin
• bahasa yang lebih dikenal dan lebih dapat dipahami oleh manusia
karena statement (pernyataan) dibuat dalam bahasa yang mudah
dimengerti oleh manusia, yaitu bahasa Inggris;
• memberikan fasilitas dan kemudahan yang lebih banyak bagi
user ;
• program mudah untuk diperbaiki dan dikoreksi (debug); dan
• tidak bergantung pada salah satu jenis mesin komputer dan masih
membutuhkan translator.
• sukar;
• tergantung pada jenis mesin (semakin baik semakin rumit); dan
• lebih besar kemungkinan digunakan saat pembuatan assembler
• Assembly
• hasil program memiliki ukuran yang sangat kecil;
• sulit dipahami karena perintahnya singkat-singkat;
• fasilitas terbatas.
• Bootstrap
“Untuk membangun sesuatu yang besar maka dibuat dahulu bagian
intinya” (Niklaus Wirth).
Teori Komputasi |
9
Pembuatan Compiler
10
Proses dan Tahapan Kompilasi
• Terbagi ke dalam 2 kelompok besar:
Statement yang dibuat
oleh manusia pada
sebuah bahasa
pemrograman (source
language) dilihat
sebagai barisan bit 0
dan 1 oleh mesin
(machine language)
Teori Komputasi |
Teori Komputasi |
1. Analisa (Front End)
Melakukan dekomposisi program sumber (source code)
menjadi bagian-bagian dasarnya (intermediate
representation).
2. Sintesa (Back End)
Melakukan pembangkitan dan optimasi program objek
11
Teori Komputasi |
12
3
10/15/2015
Tahapan Proses Kompilasi
Proses dan Tahapan Kompilasi
1. Scanner
Source
Code
Memecah program sumber menjadi besaran leksikal/token
Contoh: Perhitungan aritmatika A + B
Object
Code
ANALYSIS
SYNTHESIS
A
Lexical
Analyzer
(Scanner)
Syntactic
Analyzer
(Parser)
Semantic
Analyzer
Intermmediate
Code Generator
Intermmediate
Code
Code
Generator
+
B
Code
Optimizer
id1 + id2
Tabel Simbol
Teori Komputasi |
13
Proses dan Tahapan Kompilasi
2. Parser
+
14
Proses dan Tahapan Kompilasi
3. Semantic Analyzer
Analisis yang membangkitkan kode antara (intermmediate
form)
Memeriksa kebenaran dan urutan kemunculan token
id1
Teori Komputasi |
id2
Id1 id2 +
Id1 id2 +
( + , id1 , id2 , T1)
Teori Komputasi |
15
Teori Komputasi |
16
4
10/15/2015
Proses dan Tahapan Kompilasi
4. Code Generator
Membangkitkan kode objek
Proses dan Tahapan Kompilasi
5. Code Optimizer
Memperkecil hasil dan mempercepat proses
( + , id1 , id2 ,T1)
LDA
ADD
STO
id1
id2
T1
Teori Komputasi |
LDA
ADD
STO
id1
id2
T1
LDA
ADD
STO
id1
id2
T1
17
Teori Komputasi |
Proses dan Tahapan Kompilasi
6. Pembuatan Object Code
Menuliskan dalam bahasa assembly
LDA
ADD
STO
18
Mutu Compiler
1. Kecepatan Waktu Proses
• Penulisan Algoritma Compiler
• Kompilator Compiler
id1
id2
T1
2. Mutu Program Object
• Ditentukan oleh ukuran dan kecepatan eksekusi program object
3. Integrated Environment
• Fasilitas-fasilitas yang terintegrasi yang dimiliki oleh sebuah
compiler
MOV T1, id1
ADD T1, id2
Teori Komputasi |
19
Teori Komputasi |
20
5
10/15/2015
Teori Komputasi
1-21
6