Anda di halaman 1dari 24

MODEL KOMPILATOR

Pertemuan 3
ITC4223 - TEKNIK KOMPILASI

Guntoro, S.T., M.Kom


Email: guntorokom@gmail.com | guntoro@unilak.ac.id
Website: http://www.guntoro.web.id
FB/Twitter/IG: gunturtif | Mobile/WA/Telegram: +62 852 7122 0118

Program Studi Teknik Informatika - Fakultas Ilmu Komputer


Universitas Lancang Kuning
Program Studi Teknik Informatika - Fakultas Ilmu Komputer
UniversitasJl. Yos Sudarso
Lancang Kuning KM.8, Umban Sari, Rumbai, Kota MODEL KOMPILATOR
Pekanbaru, Riau 28266, http://www.unilak.ac.id
Outline
• Mutu kompilator
• Pembuatan Kompilator

Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR


Universitas Lancang Kuning 2
Model Kompilator

Source Source
Object
Code Code
Code

ANALISIS SINTESIS

Analisa Analisa
Analisa Intermediate Kode Kode
Leksikal Sintaks
Semantik Code Generator Optimasi
(Scanner) (Parser)

TABEL SIMBOL

Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR


Universitas Lancang Kuning 3
(1) Program Sumber
 Deretan simbol berupa huruf, digit, atau simbol tertentu seperti +, -,
dan ,
 Program sumber memuat konstruksi bahasa yang mendasar seperti
nama variable, label, konstanta, keyword, dan operator.
 Konstruksi bahasa merupakan definisi dari bahasa itu sendiri.

Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR


Universitas Lancang Kuning
(2) Lexical Analyzer / Scanner
 Tujuannya memisahkan text yang masuk ke dalam token, Contoh:
konstanta, nama variabel, keyword (DO,IF,THEN) dan operator.
 Melakukan analisis sintaksis level rendah.
 Klas dari token diberikan suatu angka representasi internal yang unik
(alasan efisiensi), Contoh: PERIKSA : IF A>B THEN X=Y

Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR


Universitas Lancang Kuning
(3) Syntax Analyzer / Parser
 Lebih kompleks dari scanner
 Fungsinya untuk menentukan bagaimana dekomposisinya (hasil
pecahannya)
 Analoginya penentuan struktur dari suatu kalimat dalam bahasa inggris
co:/ identifikasi klas subject, predikat, verb, dan adjectiv.
 Pengelompokan token dalam kelas sintaksis seperti expression,
statement, dan procedure.
 Berupa pohon sintaks
 Grammer digunakan oleh syntax analyzer untuk menentukan struktur
program sumber. (pengenalannya disebut parsing)

Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR


Universitas Lancang Kuning
(4) Semantic Analyzer
 Fungsinya untuk menentukan “maksud” dari suatu program sumber.
 Secara konseptual sintaks program sumber dipisahkan dari
semantiknya tetapi bekerja sama secara dekat.
 Co:/ untuk ekspresi (A+B)*(C+D), semantik analyzer harus
menentukan aksi apa yg ditentukan oleh operator aritmetika
penjumlahan atau pengurangan.Saat parser mengenali simbol + atau
- , akan memanggil rutin semantik yang menspesifikasikan aksi yang
akan dilakukan.

Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR


Universitas Lancang Kuning
(5) Intermediate Form
 Dihasilkan dari analisis semantik,co:/ ekspresi (A+B)*(C+D) kode
antaranya bisa berupa kuadrupel berikut:
(+, A, B, T1)
(+, C, D, T2)
(*, T1, T2, T3)
Ekspresi infix bisa dirubah ke notasi polish- sufi menjadi AB+CD+*

Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR


Universitas Lancang Kuning
(6) Code Generator
 Menerima keluaran dari semantic analyzer.
 Bentuk program sumber ditranslasikan ke bahasa assembly atau mesin.
 Co:/ translasi kuadrupel dengan format 1 alamat menjadi:
LDA A LDA T1
ADD B MUL T2
STO T1 STO T3
LDA C
ADD D
STO T2

Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR


Universitas Lancang Kuning
(7) Code Optimizer
Tujuan prosesnya untuk menghasilkan program objek yang lebih efisien.
 Optimasi level lokal dari mulai evaluasi ekspresi konstan, pemakaian properti operator
tertentu.Co:/ karena operator perkalian bersifat kumulatif, kode assembler sesuai
contoh sebelumnya bisa dikurangi menjadi:
LDA A
ADD B
STO T1
LDA C
ADD D
MUL T1
STO T2
 Berkaitan dengan alokasi register secara optimal
Memperkecil Pengulangan

Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR


Universitas Lancang Kuning
Dynamic Structure of a Compiler

Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR


Universitas Lancang Kuning 11
Dynamic Structure of a Compiler

Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR


Universitas Lancang Kuning 12
Mutu Kompilator:
1. Kecepatan dan waktu proses kompilasi
Penulisan algoritma kompilator dan kompilator pengkompilasi (mutu bahasa yg membangun kompilator
pengkompilasi)

Source Program
Kompilator Kompilator
Kompilator A
Pengkompilasi K Bahasa A
dalam bahasa K

2. Mutu program objek


Ditentukan oleh ukuran dan kecepatan eksekusi dari program objek. Co;/ Turbo Pascal 6 lebih baik dari Turbo Pascal 5.
3. Integrated Environment
Fasilitas terintegrasi yg dimiliki oleh kompilator tersebut. Co:/ editing,debugging dan testing
Turbo pascal = penyuntingan,kompilasi dan debug
Clipper = penyuntingan dilakukan oleh prog.editor yang terpisah dari kompilatornya.

Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR


Universitas Lancang Kuning
PEMBUATAN COMPILER

14

Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR


Universitas Lancang Kuning
Bahasa Pemrograman

• Bahasa pemrograman adalah bahasa yang menjadi sarana manusia


untuk berkomunikasi dengan komputer.
• Pikiran manusia yang tidak terstruktur harus dibuat terstruktur agar
bisa berkomunikasi dengan komputer.
• Komputer memerlukan kepastian dan logika yang benar untuk
dapat melakukan suatu instruksi tertentu.
• Untuk itu diperlukan algoritma yg baik dan benar.

15

Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR


Universitas Lancang Kuning
Pembuatan compiler

Bahasa mesin

• Bahasa mesin adalah bahasa yang berisi kode-kode mesin yang


hanya dapat diinterpretasikan langsung oleh mesin komputer.
• Bahasa mesin sering juga disebut native code (sangat tergantung
pada mesin tertentu). Bahasa ini merupakan bahasa level terendah
dan berupa kode biner: 0 dan 1.
• Sekumpulan instruksi dalam bahasa mesin dapat membentuk
microcode (semacam prosedur dalam bahasa mesin).
• Contoh: untuk mesin IBM/370
0001100000110101 = 1835 yang berarti mengkopikan isi
register 5 ke register 3
• Keuntungan : Eksekusi cepat
• Kerugian : Sangat sulit dipelajari manusia
Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR
Universitas Lancang Kuning
Pembuatan compiler

Bahasa Assembly

• Bahasa assembly adalah bahasa simbol dari bahasa mesin.


• Setiap kode bahasa mesin memiliki simbol sendiri dalam bahasa assembly. Misalnya
ADD untuk penjumlahan, MUL untuk perkalian, SUB untuk pengurangan, dan lain-
lain.
• Sekumpulan kode-kode bahasa assembly dapat membentuk makroinstruksi.
• Bahasa assembly juga memiliki program pen-debug-nya, tidak seperti bahasa mesin.
Misalnya: Turbo Assembler dan debug pada DOS. Assembler akan mencocokkan
token simbol dari awal s/d akhir, kemudian dikodekan menjadi bahasa mesin.
• Kelebihan: Eksekusi cepat, masih bisa dipelajari daripada bahasa mesin, file hasil
sangat kecil
• Kekurangan: Tetap sulit dipelajari, program sangat panjang.
Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR
Universitas Lancang Kuning
Pembuatan compiler
Bahasa Tingkat Tinggi (high level language)

• Bahasa ini lebih dekat dengan bahasa manusia. Bahasa inilah yang akan dibahas pada matakuliah
ini.
• Bahasa ini juga memberikan banyak sekali fasilitas kemudahan pembuatan program, misalnya:
variabel, tipe data, konstanta, struktur kontrol, loop, fungsi, prosedur dan lain-lain. Contoh:
Pascal, Basic, C++, dan Java.
• Mendukung information hiding, enkapsulasi, dan abstract data type.
• Bahasa Tingkat tinggi memiliki generasi, misalnya generasi ke-3 (Pascal, C/C++) dan generasi ke-4
(Delphi, VB, VB.NET, Visual Foxpro)
• Keuntungan:
• Mudah dipelajari
• Mendekati permasalahan yang akan dipecahkan
• Kode program pendek
• Kerugian
• Eksekusi lambat

Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR


Universitas Lancang Kuning
Pembuatan compiler

Bahasa yang berorientasi pada masalah spesifik


(specific problem oriented).
• Bahasa ini adalah bahasa yang digunakan langsung untuk
memecahkan suatu masalah tertentu. Misalnya SQL
untuk database, Regex untuk mencocokkan pola pada
string tertentu.
• Jenis bahasa ini juga masuk ke Bahasa tingkat tinggi.

Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR


Universitas Lancang Kuning
Pembuatan compiler

Istilah-istilah
• Source language : jenis bahasa yang menjadi sumber.
• Source code: kode program yang akan dikompilasi/diinterpret.
• Object code: program hasil kompilasi/interpretasi.
• Object file: file hasil kompilasi, biasanya berekstensi .OBJ atau .O
• Target Machine: komputer yang digunakan untuk menjalankan
program hasil interpretasi/kompilasi

Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR


Universitas Lancang Kuning
Pembuatan compiler

BootStrap

• Untuk membangun sesuatu yang besar,


dibangun/dibuat dulu bagian intinya (niklaus
Wirth - saat membuat pascal compiler)

Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR


Universitas Lancang Kuning
BootStrap

P2
P1
Po

• PO dibuat dengan assembly,


• P1 dibuat dari P0, dan
• P2 dibuat dari P1, jadi compiler untuk bahasa P dapat dibuat tidak
harus dengan menggunakan assembly secara keseluruhan
Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR
Universitas Lancang Kuning
Contoh dari source program ke dalam kode mesin

Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR


Universitas Lancang Kuning
Tugas 1 (Individu)
• Mengapa kita memerlukan Bahasa pemrograman
• Berikan Penjelasan dari istilah-istilah berikut: Kompilator, translator,
interpreter, assembler, emulator
• Berikan beberapa contoh produk yang ada di pasaran untuk istilah pada no 2
• Lakukan perbandingan komponen mutu dari beberapa kompilator yaitu
Turbo pascal, Quic basic, Turbo Basic, Turbo C, Microsoft C !
• Apa keuntungan dari penggunaan metode Boostrap ?
• Pengerjaan Tugas disertai dengan Daftar Pustaka
• Program Operasi File (Input, Calculator, C, C++, Java)
• Tidak Boleh Copy Paste dengan Bahasa Sendiri !

Program Studi Teknik Informatika - Fakultas Ilmu Komputer MODEL KOMPILATOR


Universitas Lancang Kuning 24

Anda mungkin juga menyukai