p1 kompilasi

21
Teknik Kompilasi 01 / 1 - 13 PENDAHULUAN KOMPILER Sebuah program yang menter- jemahkan suatu bahasa (source program) menjadi bahasa lain (target program) Source Kompiler Target program program Error messages Bahan Ajar Matakuliah oleh SINAR SINURAT

Upload: aizu-aurinasahara

Post on 07-Jul-2016

232 views

Category:

Documents


3 download

DESCRIPTION

KOMPILASI

TRANSCRIPT

Page 1: P1 KOMPILASI

Teknik Kompilasi 01 / 1 - 13

PENDAHULUAN

KOMPILER Sebuah program yang menter-jemahkan suatu bahasa (source program) menjadi bahasa lain (target program)

Source Kompiler Targetprogram program

Error

messages Program-program yang menggunakan teknologi kompiler antara lain : Text Formatter : mengambil input

sebagai stream karakter termasuk perintah untuk mengenali paragraf,

Bahan Ajar Matakuliah oleh SINAR SINURAT

Page 2: P1 KOMPILASI

Teknik Kompilasi 01 / 2 - 13

gambar atau struktur matematika (subscript, superscript)

Silicon Compiler : merupakan fungsional programming languange dimana variabel-variabel represen-tasi bahasa untuk signal logika (0 or 1 or grup signal) tidak berada di memory akan tetapi ada di rangkaian switching

Query Interpreter : menerjemahkan predikat relasi dan operator boolean menjadi command untuk mencari database records yang memenuhi predikat

Bahan Ajar Matakuliah oleh SINAR SINURAT

Page 3: P1 KOMPILASI

Teknik Kompilasi 01 / 3 - 13

LANGUAGE PROCESSING SYSTEM

Sistem pemrosesan program untuk menghasilkan target program yang executable, sebagai berikut :

skeletal source program

preprocessor

source program

compiler

target assembly program

assembler

relocatable machine code

loader/link-editor library relocatable object files

absolute machine code

Bahan Ajar Matakuliah oleh SINAR SINURAT

Page 4: P1 KOMPILASI

Teknik Kompilasi 01 / 4 - 13

KELUARGA KOMPILER Preprocessor : menyiapkan input

bagi kompiler dan functions yang mungkin dilakukan seperti :a. Macroprocessing : system yang

yang diijinkan mendefinisikan macro statements

b. File Inclussion : system yang berfungsi untuk memasukkan berbagai header file ke dalam teks program

c. Rational Preprocessor : penye-diaan fasilitas flow of control dan struktur data misalnya pemakaian statement : while, if (apabila bahasa pemrograman itu tidak memilikinya)

Bahan Ajar Matakuliah oleh SINAR SINURAT

Page 5: P1 KOMPILASI

Teknik Kompilasi 01 / 5 - 13

d. Language Extention : meng- gabungkan perintah bahasa lain ke dalam teks program

Assembler : untuk menghasilkan relocatable machine code/ assembly code sebagai suatu job untuk selanjutnya di loader / link loader

Loader/ Link Loader : loader meng-ubah relocatable machine code dengan menempatkan perubahan data dan instruksi dalam memory sedangkan link loader menggabung beberapa file yang berisi relocatable machine code menjadi satu kesatuan

Bahan Ajar Matakuliah oleh SINAR SINURAT

Page 6: P1 KOMPILASI

Teknik Kompilasi 01 / 6 - 13

KLASIFIKASI KOMPILASI BERDASARKAN KONSTRUKSI DAN FUNGSINYA :

* Single - Pass* Multi - Pass* Load - And - Go* Debugging* Optimizing

TAHAPAN KOMPILASI

DUA BAGIAN UTAMA PROSES KOMPILASI

1. ANALYSIS : membagi program ke dalam

bagian-bagian kecil membuat “intermediate represen-

tation” dari source program

Bahan Ajar Matakuliah oleh SINAR SINURAT

Page 7: P1 KOMPILASI

Teknik Kompilasi 01 / 7 - 13

2. SYNTHESIS : membangun target program dari

intermediate representation

Secara konseptual kompiler beroperasi secara bertahap, dimana setiap tahap mentransformasikan source program dari suatu representasi ke representasi lainnya.

Bahan Ajar Matakuliah oleh SINAR SINURAT

Page 8: P1 KOMPILASI

Teknik Kompilasi 01 / 8 - 13

Tahap-tahap kompiler adalah sebagai berikut : source program

lexical analyzer

syntax analyzer

symbol-table error manager handler

Intermediate code

generator

code optimizer

code generator

target program

SYMBOL TABLE

Bahan Ajar Matakuliah oleh SINAR SINURAT

semantic analyer

Page 9: P1 KOMPILASI

Teknik Kompilasi 01 / 9 - 13

Struktur data yang berisi record untuk setiap identifier yang berisi field-field/ atribut-atribut dari identifier.

ERROR HANDLER

Fungsi yang menangani dan melapor- kan setiap error / kesalahan yang di-temukan (pada setiap tahapan)

LEXICAL ANALYSIS (linear analysis = Scanner)

Membaca source program (stream of chars) dari kiri ke kanan dan mengelompokkannya ke dalam token-token.

Bahan Ajar Matakuliah oleh SINAR SINURAT

Page 10: P1 KOMPILASI

Teknik Kompilasi 01 / 10 - 13

SYNTAX ANALYSIS (Hierarchical Analysis = Parser)

Menghasilkan struktur hirarki dari token-token.

Biasanya direpresentasikan dalam bentuk parse tree atau syntax tree.

SEMANTIC ANALYSIS

Memeriksa komponen tertentu bagian program secara bersama mengan-dung suatu arti yang benar.

Bahan Ajar Matakuliah oleh SINAR SINURAT

Page 11: P1 KOMPILASI

Teknik Kompilasi 01 / 11 - 13

INTERMEDIATE CODE GENERATION

Merepresentasi suatu program dalam coding sebagai mesin abstract dengan memperhatikan sifat berikut : - mudah menghasilkan- mudah mentranslasi target program

CODE OPTIMIZATION

Melakukan optimasi/ reduce terhadap code tanpa mengganggu sikuens eksistensi proses sehingga running dapat lebih cepat

Bahan Ajar Matakuliah oleh SINAR SINURAT

Page 12: P1 KOMPILASI

Teknik Kompilasi 01 / 12 - 13

CODE GENERATION

Menghasilkan target code dari inter-mediate code yang telah dioptimasi.

FRONT-BACK ENDS

Front-ends : mengenali source file program yang benar (analisis), meliputi : code generator dan modul optimasi.

Back-ends : menghasilkan code untuk target mesin (sintetis), yang meliputi : scanner, parser, constrainer.

Bahan Ajar Matakuliah oleh SINAR SINURAT

Page 13: P1 KOMPILASI

Teknik Kompilasi 01 / 13 - 13

Contoh translasi statement : position := initial + rate * 60

lexical analyzer

id1 := id2 + id3 * 60 Symbol Table

syntax analyzer

:=id1 +

id2 * id3 60

semantic analyzer

:=id1 +

id2 - id3 inttoreal

60

Intermediate code generator

temp1 := inttoreal(60)temp2 := id3 * temp1temp3 := id2 + temp2id1 := temp3

code optimizer MOV R2, id3MUL R2, 60.0

temp1 := id3 * 60.0 MOV R1, id2id1 := id2 + temp1 ADD R1, R2

MOV Id1, R1code generator

Bahan Ajar Matakuliah oleh SINAR SINURAT

1 Position ……

2 Initial ……

3 Rate ……

4 ……. ……

Page 14: P1 KOMPILASI

Teknik Kompilasi 01 / 14 - 13

ALAT BANTU KONSTRUKSI KOMPILER (Compiler Construction Tools) Parser Generator

Menghasilkan pohon sintaks oleh Syntax Analyzer (parser) dari input yang berdasarkan context free grammar.

Scanner GeneratorMenghasilkan input stream oleh Lexical Analyzer (scanner) dari spesifikasi input data berdasarkan regular expression.

Automatic Code GeneratorMengambil kumpulan rules yang akan mendefinisikan penerjemahan setiap operasi dari intermediate

Bahan Ajar Matakuliah oleh SINAR SINURAT

Page 15: P1 KOMPILASI

Teknik Kompilasi 01 / 15 - 13

language ke dalam machine language dari target machine

Data Flow EngineMengumpulkan informasi tentang bagaimana nilai-nilai ditranslasikan dari suatu bagian program ke bagian lainnya, untuk keperluan “data flow analysis” pada tahap optimasi code.

Bahan Ajar Matakuliah oleh SINAR SINURAT