Anda di halaman 1dari 11

TEKNIK KOMPILASI

(Kelompok 6)

Nanang Arif Andriyani 4611415002


Adinda Audia Caessarani Adrian 4611415015
Doni Aprilianto 46114150
Fachrizal Ahdy Handoyo 46114150

MATERI 1. PENGENALAN KOMPILER


PENGERTIAN TEKNIK KOMPILASI
Teknik Kompilasi merupakan teknik dalam melakukan
pembacaan suatu program yang ditulis dalam
bahasa sumber (source code / source program),
kemudian diterjemahkan ke dalam suatu bahasa lain yang disebut
bahasa sasaran ( target code / object code / object program ).

BAHASA SUMBER BAHASA SASARAN

DILAKUKAN OLEH
TRANSLATOR
BAHASA PEMROGRAMAN
Dalam lingkungan pemrograman komputer, bahasa pemrograman
bertindak sebagai sarana komunikasi antara manusia dan
permasalahannya dengan komputer yang dipakai untuk membantu
memperoleh pemecahan.

Jenis bahasa pemrograman berdasarkan tingkat ketergantungannya


dengan mesin:
1. Bahasa Mesin
2. Bahasa Essembly
3. Bahasa Tingkat tinggi ( User oriented dan Problem Oriented)
Bentuk Terendah Bentuk Tertinggi

1. Bahasa Mesin
Setiap instruksi dalam program direpresentasikan dengan kode numerik, yang secara
fisik berupa deretan angka 0 dan 1.
2. Bahasa Assembly
Merupakan bentuk simbolik dari bahasa mesin. Setiap kode operasi memiliki kode
simbolik, misalnya ADD untuk penjumlahan (Addition) dan MUL untuk perkalian
(Multiplication). Pada bahasa assembly tersedia alat bantu untuk diagnostik atau debug
yang tidak terdapat pada bahasa mesin. Contoh produk yang ada untuk pengembangan
dan debug bahasa assembly di pasaran saat ini, misalnya Turbo Assembler dari Borland,
Macro Assembler dari Microsoft, Debug yang tersedia pada DOS.
3. Bahasa tingkat tinggi
User Oriented
Disebut tingkat tinggi karena lebih dekat dengan manusia. Memberikan fasilitas yang
lebih banyak, kontrol program yang terstruktur, bersarang(nested), block, dan prosedur.
Contohnya : Pascal, C, Basic
Problem Oriented
Memungkinkan penyelesaian untuk suatu masalah atau aplikasi yang spesifik.
Contohnya : SQL (Structured Query Language) untuk aplikasi database, COGO untuk
aplikasi teknik sipil.
TRANSLATOR
BAHASA SUMBER BAHASA SASARAN

Ada beberapa macam translator.


1. Assembler
Menerjemahkan langsung dari source code ke
object code. Source Code adalah bahasa
assembly sedangkan object code adalah bahasa
mesin.

Contoh yang menghasil .Com adalah : Debug,


TASM, emu8086.
Contoh yang menghasilkan .Exe adalah : TASM
dengan perintah linker Tlink, HLA, MASM32,
FASM
Khusus TASM terkadang file .Com yang
dihasilkan akan lebih baik daripada file .Exe
yang dihasilkan sebagai contoh adalah pada
TRANSLATOR
BAHASA SUMBER BAHASA SASARAN

2. Kompilator (Compiler)
Source Code adalah bahasa tingkat tinggi (misal bahasa Pascal), object
code adalah bahasa mesin atau bahasa assembly. Source Code dan data
diproses pada saat yang berbeda. Contohnya : Turbo Pascal, C++.
TRANSLATOR
BAHASA SUMBER BAHASA SASARAN

3. Interpreter
Interpreter tidak membangkitkan Object Code, hasil translasi hanya dalam
bentuk Run Time Code. Contohnya : Bahasa Basica, Dbase/Foxbase
PERBEDAAN ANTARA
INTERPRETER DENGAN COMPILER
Interpreter
1. Menerjemahkan instruksi per instruksi
2. Tidak menghasilkan objek program
3. Tidak menghasilkan executable program
4. Source program terus dipergunakan karena tidak dihasilkan executable
program.

Compiler
1. Menerjemahkan secara keseluruhan sekaligus
2. Dihasilkan objek program
3. Dihasilkan executable program
4. Source program tidak dipergunakan lagi untuk menjalankan
MODEL KOMPILATOR

Sebuah kompilator umumnya memiliki 2 tugas pokok :

1. Fungsi Analisis
Fungsi analisis biasa disebut sebagai Front End. Tugasnya melakukan
dekomposisi program sumber menjadi bagian bagian dasarnya.

2. Fungsi Sintesis
Fungsi sintesis biasa disebut sebagai Back End. Tugasnya melakukan
pembangkitan dan optimasi program objek.
Keterangan gambar :
. Scanner : memecah program sumber menjadi besaran leksikalnya.
Beberapa kegiatan pada tahap scanner ini diantaranya adalah :
- Menangani kesalahan
- Mengenali besaran leksikal
. Parser : Memeriksa kebenaran dan urutan kemunculan token seperti :
- Samping kiri = pasti variabel
- Samping kanan = pasti ekspresi
Tiap operator +, -, *, /, tidak boleh double. Contohnya : A = 3++7
. Analisis semantik : Melakukan analisa semantik, biasanya dalam realisasi akan
digabungkan dengan intermediate code generator (bagian yang berfungsi
membangkitkan kode antara. Seperti :
- Triples Notation
- Quadruples Notation
. Code Generator : Membangkitkan kode objek. Bagian ini merupakan bagian yang bersifat
abstrak, artinya tidak dilaksanakan oleh programmer. Tetapi dilakukan oleh bahasa
pemrograman yang dilakukan oleh programmer dalam perancangan compiler. Di sini kode
antara dari program biasanya ditranslasi ke bahasa assembly atau bahasa mesin.
. Code Optimizer : Upaya untuk memperkecil hasil dan mempercepat proses
. Tabel Informasi : Menyimpan semua informasi yang berhubungan dengan proses
kompilasi.

Anda mungkin juga menyukai