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