Anda di halaman 1dari 21

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 diterjemahkan
oleh 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.

1
Pendahuluan
Arti Kata Teknik Kompilasi
 Teknik adalah suatu metode atau cara
 Kompilasi suatu proses menggabungkan serta
menterjemahkan sesuatu (source program)
menjadi bentuk lain
 Compile: menterjemahkan sebuah program
yang ditulis dalam bahasa pemrograman
tingkat tinggi ke bahasa mesin

Pendahuluan 2
Kenapa Perlu Translator?
 Bagi user yang hanya pengguna
mungkin kata-kata translator adalah
membingungkan. Kenapa perlu
translator?
 Pertanyaan tsb akan membingungkan
bagi programmer yang membuat
program dengan bahasa mesin

Pendahuluan 3
Latar Belakang
 Bahasa mesin adalah bentuk bahasa terendah
pada komputer, kita dapat
berhubungan/komunikasi langsung dengan bagian-
bagian yang ada di dalam komputer seperti bits,
register dan sangat primitif.
 Bahasa mesin adalah tidak lebih dari urutan bit-bit
0 dan 1
 Instruksi dalam bahasa mesin bisa saja dibentuk
menjadi micro-code, semacam prosedur dalam
bahasa mesin
Pendahuluan 4
Bagaimana dengan orang yang tidak
mengerti bahasa mesin?
 Bagi user yang tidak mengerti bahasa mesin
akan mengalami masalah. Hal ini disebabkan
karena mereka harus belajar dahulu bahasa
mesin, dan akan bergabung pada jenis mesin
komputer yang digunakan. Jika jenis
komputer mengalami perubahan maka dapat
dipastikan bahwa user harus mempelajari lagi
bahasa mesin dengan jenis komputer yang
baru.

Pendahuluan 5
Bagaimana dengan orang yang tidak
mengerti bahasa mesin?

 Oleh karena itu manusia berusaha dan


menciptakan suatu bahasa yang dapat
dimengerti baik oleh manusia maupun
oleh komputer. Bahasa yang demikian
ini sering disebut dengan bahasa
tingkat tinggi.

Pendahuluan 6
Bagaimana dengan orang yang tidak
mengerti bahasa mesin?

 Untuk era sekarang user tidak lagi


banyak dipusingkan mengenai
penterjema karena kemudahan-
kemudahan yang diberikan oleh bahasa
tingkat tinggi sekarang sangatlah
memudahkan dan lebih fleksibel dalam
bekerja pada mesin-mesin komputer
yang berbeda.
Pendahuluan 7
1. Bahasa Pemrograman

Bahasa
mesin
Bahasa
Assembly

Bahasa
Pemrograman
Bahasa
Tingkat tinggi

Bahasa
Problem Oriented

8
Pendahuluan
Bahasa tingkat tinggi
Bahasa mesin merupakan bentuk
(user oriented) lebih
terendah dari bahasa komputer.
banyak memberikan fungsi
Instruksi direpresentasikan dalam
kontrol program, kalang,
kode numerik.
block, dan prosedur.

Program
Language

Bahasa problem oriented


Bahasa Assembly merupakan bentuk sering juga dimasukkan sebagai
simbolik dari bahasa mesin. Kode bahasa tingkat tinggi,
misalnya ADD, MUL, dsb misalnya SQL, Myob, dsb.

9
Pendahuluan
Bahasa Tingkat Tinggi
 Bahasa yang lebih dikenal oleh manusia, maksudnya
adalah statement yang digunakan menggunakan
bahasa yang dipakai oleh manusia (Inggris)
 Programmudah untuk dikoreksi dan diperbaiki
(debug)
 Tidak tergantung pada salah satu jenis mesin
komputer
 Bahasa tingkat tinggi biasanya masih membutuhkan
translator

Pendahuluan 10
Bahasa Tingkat Tinggi
 Memberikan fasilitas yang lebih banyak,
seperti struktur kontrol program yang
terstruktur, memiliki blok-blok, serta prosedur
dan fungsi-fungsi:
Struktur kontrol seperti:
kondisi (If ...Then...Else),
perulangan (For, While)
struktur blok (begin...End, {...})

Pendahuluan 11
Bahasa Tingkat Tinggi
 Oleh karena itu dari bahasa tingkat tinggi ke
dalam bahasa mesin dibutuhkan sesuatu
untuk menterjemahkan agar mesin
(komputer) mengerti apa yang diinginkan
manusia. Menerjemahkan statement bahasa
tingkat tinggi ke dalam bahasa tingkat rendah
dapat dibedakan menjadi dua; melalui
interpreter atau compiler yang fungsinya
sama yaitu menerjemahkan

Pendahuluan 12
2. Translator
Translator melakukan pengubahan source code / source program ke dalam target code / object code

Interpreter dan Compiler termasuk dalam kategori translator.

Interpreter

 Tidak membangkitkan object code


Translator  Source code dan data diproses bersamaan
 Contoh, BASICA, SPSS, DBASE III

Assembler
Compiler

 Source Code adalah bahasa tingkat tinggi.  Source Code adalah bahasa Assembly
 Object Code adalah bahasa mesin atau assembly  Object Code adalah bahasa mesin
 Source code dan data diproses tidak bersamaan  Contoh, Turbo Assembler
 Contoh, PASCAL, C
13
Pendahuluan
Interpreter

Penanganan
Kesalahan

Program Analisa Analisa Intermediate Hasil


Sumber Interpretasi Operasi
Leksikal Sintaks Program

Pengelolaan
Tabel

14
Pendahuluan
Assembler

File
Source Assembler Object Code Lingker Target
Code

.ASM .OBJ .EXE / .COM

Proses Sebuah Kompilasi pada


Bahasa 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)

15
Pendahuluan
Compiler
Definisi : Kompilator (compiler) adalah sebuah program yang membaca suatu program yang ditulis
Dalam suatu bahasa sumber (source language) dan menterjemahkannya kedalam suatu
bahasa sasaran (target language)
Proses kompilasi dapat digambarkan melalui sebuah blok diagram sebagai berikut :

Program sumber Compiler 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

16
Pendahuluan
Blok Diagram

Program Program
Sumber Sasaran

ANALISA SINTESA
Penganalisa
Penganalisa Penganalisa Semantik Pembentuk Pengoptimal
Leksikal Sintaks Pembangkit kode kode
(scanner) (parser) Kode antara

TABEL
SIMBOL

Bagan pokok proses kompilasi

17
Pendahuluan
Keterangan

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

18
Pendahuluan
Library Object
Code
Source Object
Code 1 Compiler 1
Code 1
Source Object
Code 2 Compiler 2
Code 2
Lingker Executable

Source Object
Code n Compiler n
Code n

• Pembentukan file Executable berdasar dari beberapa Source Code


• Source Code dapat terdiri dari satu atau lebih behasa pemrograman.

19
Pendahuluan
Pembuatan Compiler

Pembuatan kompilator dapat dilakukan dengan :

1. Bahasa Mesin
Tingkat kesulitannya tinggi, bahkan hampir mustahil
dilakukan
sangat tergantung pada mesin

2. Bahasa Assembly
Bahasa Assembly bisa dan biasa digunakan sebagai tahap awal pada proses
pembuatan sebuah kompilator
Hasil dari program mempunyai ukuran yang relatif kecil
Sulit dimengerti karena perintahnya singkat-singkat, butuh usaha yang besar
untuk membuat compiler dengan bahasa ini

20
Pendahuluan
Pembuatan Compiler

Pembuatan kompilator dapat dilakukan dengan :

3. Bahasa Tingkat Tinggi lain pada ,mesin yang sama


Proses pembuatan kopilator akan lebih mudah
Fasilitas yang dimiliki lebih baik (banyak)
Memiliki ukuran yang relatif besar, misal membuat compiler
pascal dengan menggunakan bahasa C
Untuk mesin yang berbeda perlu dikembangkan tahapan-
tahapan tambahan. Misal membuat compiler C pada Dos
berdasarkan compiler C pada unix

5. Bootstrap P1
P2
Pembuatan kompilator secara bertingkat. P0

21
Pendahuluan

Anda mungkin juga menyukai