Bab 1 - Pendahuluan

advertisement
Teknik Kompilasi
“Translator”
Dosen : Ahmad Apandi, ST
Tujuan

Mahasiswa memahami cara kerja serta proses yang terjadi pada
sebuah Compiler.

Mahasiswa memahami konsep pembuatan sebuah Compiler.

Mahasiswa mengetahui bagaimana sebuah bahasa pemrograman
dapat diterjemahkan oleh mesin.
ARTI KATA TEKNIK KOMPILASI
•
Teknik :
–
•
Metode atau Cara
Kompilasi :
–
Proses menggabungkan serta menterjermahkan sesuatu (source program)
menjadi bentuk lain
•
Compile :
–
To translate a program written in a high-level programming language into
machine language.
Bahasa Pemrograman
Bahasa
mesin
Bahasa
Assembly
Bahasa
Pemrograman
Bahasa
Tingkat tinggi
Bahasa
Problem Oriented
Bahasa Pemrograman
Bahasa mesin merupakan bentuk
terendah dari bahasa komputer.
Instruksi direpresentasikan dalam
kode numerik.
Bahasa tingkat tinggi
(user oriented) lebih
banyak memberikan fungsi
kontrol program, kalang,
block, dan prosedur.
Program
Language
Bahasa Assembly merupakan bentuk
simbolik dari bahasa mesin. Kode
misalnya ADD, MUL, dsb
Bahasa problem oriented
sering juga dimasukkan sebagai
bahasa tingkat tinggi,
misalnya SQL, Myob, dsb.
Translator
Translator melakukan pengubahan source code / source program kedalam target code / object code
Interpreter dan Compiler termasuk dalam kategori translator.
Interpreter
 Tidak membangkitkan object code.
 Source code dan data diproses
bersamaan.
Translator
 Contoh: BASICA, SPSS, DBASE III.
Assembler
Compiler
 Source Code adalah bahasa tingkat tinggi.
 Object Code adalah bahasa mesin atau assembly.
 Source Code adalah bahasa Assembly
 Object Code adalah bahasa mesin.
 Contoh: Turbo Assembler.
Mengapa perlu Translator ?

Bahasa mesin adalah bahasa bentuk bahasa terendah
komputer, berhubungan langsung dengan bagian bagian
komputer seperti bits, register & sangat primitive

Jawaban atas pertanyaan ini akan membingungkan bagi
programmer yang membuat program dengan bahasa mesin.

Bahasa mesin adalah tidak lebih dari urutan 0 dan 1

Bagaimana dengan orang tidak mengerti bahasa mesin
Compiler & Interpreter

Jika sebuah Translator menerjemahkan bahasa pemrograman tingkat tinggi
menjadi bahasa rakitan atau bahasa mesin, ini disebut COMPILER. Contoh : ADA,
ALGOL, BASIC, COBOL, FORTRAN, PL/I, C/C++

Jika sebuah Translator menerjemahkan bahasa pemrograman tingkat tinggi
menjadi intermediate kode yang akan langsung di jalankan, ini disebut
INTERPRETER. Contoh : APL, ASP, CYBOL, LISP, Smalltalk, PHP dan Perl
Perbedaan Compiler & Interpreter
 Jika hendak menjalankan program hasil kompilasi dapat dilakukan tanpa butuh
kode sumber. Sedangkan interpreter butuh kode sumber.
 Pada compiler terdapat 2 tahap, yaitu parsing ( pembuatan kode objek ) dan
linking ( penggabungan kode objek dengan library ) . Sedangkan interpreter tidak
ada proses terpisah.
 Pada kompiler bisa dilakukan optimisasi / peningkatan kualitas kode yang bisa
dijalankan. Sedangkan interpreter susah atau bahkan tidak bisa dioptimasikan.
Compiler & Interpreter
Proses Kompilasi
Proses Kompilasi dikelompokkan kedalam dua kelompok besar :
–
Analisa : Program sumber dipecah-pecah dan dibentuk menjadi bentuk
antara (Intermediate Representation ).
–
Sintesa : Membangun program sasaran yang diinginkan dari bentuk antara.
Blok Diagram Proses Kompilasi
Program
Sumber
Program
Sasaran
ANALISA
Penganalisa
Leksikal
(scanner)
Penganalisa
Sintaks
(parser)
Penganalisa
Semantik
Pembangkit
Kode antara
TABEL
SIMBOL
Bagan pokok proses kompilasi
SINTESA
Pembentuk
kode
Pengoptimal
kode
Keterangan

Program Sumber ditulis dalam bahasa sumber, misal Pascal, Assembler, dsb.

Program Sasaran dapat berupa bahasa pemrograman lain atau bahasa mesin pada suatu komputer.

Scanner : Memecah program sumber menjadi besaran leksik/token.

Penganalisa semantik : Melakukan analisa semantik, biasanya dalam realisasi akan digabungkan
Dengan intermediate code generator (bagian yang berfungsi membangkitkan kode antara).

Pembentuk Kode : Membangkitkan kode objek

Pengoptimal Kode : Memperkecil hasil dan mempercepat proses.

Tabel : Menyimpan semua informasi yang berhubungan dengan proses kompilasi.
Download