1 Teori Komputasi Agenda Teori Komputasi dan Teknik Kompilasi Translator Pembuatan Compiler Mutu Compiler Bab 1: Pendahuluan Fakultas Teknologi dan De...
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 ditulis pada satu bahasa pemrograman (source language) ke dalam bahasa lain (the object on target language).”
Jenis Translator 1. Assembler, source code bahasa assembly, object code adalah bahasa mesin.
• 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
Object Code
ANALYSIS
Memecah program sumber menjadi besaran leksikal/token Contoh: Perhitungan aritmatika A + B
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