MATERI PERKULIAHAN TEKNIK KOMPILASI

Slides:



Advertisements
Presentasi serupa
Pengayaan Software/Hardware dan Pengantarmukaan
Advertisements

CARA PENANGAN KESALAHAN
Teknik Kompilasi Febuari 2013.
MATERI 9 FUNGSI REKURSIF.
Interaksi Manusia dan Komputer
Algoritma Dasar Dalam membuat suatu program komputer, menyusun algoritma adalah langkah pertama yang harus dilakukan Dalam membuat algoritma dapat digunakan.
Pengantar Teknik Kompilasi
Teknik Optimasi.
TEKNIK OPTIMASI.
KOMPILASI KOMPILATOR (COMPILER) adalah :
Bahasa Pemrograman Tingkat Tinggi
PL/SQL PROGRAMMING PL/SQL adalah prosedur berkelanjutan dari Oracle -SQL yang menawarkan satu bentuk bahasa pemrograman. PL/SQL memungkinkan user atau.
Pemprograman Terstruktur 1
Procedure , Function dan Parameter
ANALISIS SEMANTIK, KODE ANTARA, DAN PEMBANGKITAN KODE
Cara Penanganan Kesalahan
Variabel, Konstanta, Tipe Data Dan Operator pada VB
MATERI PERKULIAHAN TEKNIK KOMPILASI
MODUL 3 PERULANGAN PERCABANGAN ARRAY
Istiqomah, S.Kom/Tekkom 2013
Cara Penanganan Kesalahan
Analisa Semantik, Kode Antara,
Analisis semantik, kode antara dan pembangkitan kode
Pesan-pesan kesalahan
Analisis leksikal (Scanner)
Pengantar Teknik Kompilasi
Percabangan dan Perulangan.
MATERI PERKULIAHAN TEKNIK KOMPILASI
MATERI PERKULIAHAN TEKNIK KOMPILASI
Semantics Analyser Contoh : A := ( A+B) * (C+D)
MATERI PERKULIAHAN TEKNIK KOMPILASI
MATERI PERKULIAHAN TEKNIK KOMPILASI
ANALISIS LEKSIKAL (Scanner)
Analisis leksikal ( SCANNER )
BAHASA SUMBER.
Analisa Semantik, Kode Antara,
Teknik Optimasi.
MATERI PERKULIAHAN TEKNIK KOMPILASI
Cara Penanganan Kesalahan
MATERI PERKULIAHAN TEKNIK KOMPILASI
MATERI PERKULIAHAN TEKNIK KOMPILASI
TEKNIK OPTIMASI Menghasilkan kode program dengan ukuran yang lebih kecil, sehingga lebit cepat eksekusinya. Berdasarkan ketergantungan pada mesin : Machine.
MATERI PERKULIAHAN TEKNIK KOMPILASI
Tipe data & Variabel 1. Aturan Leksikal. 2. Operator. 3. Statement
ANALISIS SEMANTIK, KODE ANTARA, DAN PEMBANGKITAN KODE
KODE ANTARA & PEMBANGKITAN KODE Ken Kinanti Purnamasari
Flow Control & Exception Handling
MATERI PERKULIAHAN TEKNIK KOMPILASI
Tipe data & Variabel 1. Aturan Leksikal. 2. Operator. 3. Statement
MATERI PERKULIAHAN TEKNIK KOMPILASI
Proses kompilasi COMPILATOR.
MATERI PERKULIAHAN TEKNIK KOMPILASI
CARA PENANGAN KESALAHAN
PHP.
ANALISIS SEMANTIK, KODE ANTARA, DAN PEMBANGKITAN KODE
TEKNIK KOMPILASI PERTEMUAN II.
TEKNIK OPTIMASI Menghasilkan kode program dengan ukuran yang lebih kecil, sehingga lebit cepat eksekusinya. Berdasarkan ketergantungan pada mesin : Machine.
MATERI PERKULIAHAN TEKNIK KOMPILASI
Ilustrasi Proses Kompilasi
ANALISIS SEMANTIK, KODE ANTARA, DAN PEMBANGKITAN KODE
Teknik Optimasi by kustanto
TEKNIK OPTIMASI.
ANALISIS SEMANTIK, KODE ANTARA, DAN PEMBANGKITAN KODE
Semantics Analyser by Kustanto
CARA PENANGAN KESALAHAN
Cara Penanganan Kesalahan
TEKNIK OPTIMASI.
ANALISIS SEMANTIK, KODE ANTARA, DAN PEMBANGKITAN KODE
TEKNIK OPTIMASI & TABEL INFORMASI
Fathiah, S.T.,M.Eng Universitas Ubudiyah Indonesia
Transcript presentasi:

MATERI PERKULIAHAN TEKNIK KOMPILASI PENANGANAN KESALAHAN, OPTIMASI KODE, TABEL INFORMASI 10 Ken Kinanti Purnamasari

PENANGANAN KESALAHAN

Kesalahan LEKSIKAL Jenis Penanganan Kesalahan SINTAKS Kesalahan SEMANTIK

Kesalahan mengeja keyword contoh : Kesalahan LEKSIKAL Kesalahan mengeja keyword contoh : THEN ditulis sebagai TEN

Kesalahan penulisan urutan token contoh : Kesalahan SINTAKS Kesalahan penulisan urutan token contoh : Operasi aritmatika yang jumlah tanda kurung-nya kurang / tidak pas. A := B + ( C *( D + E );

Kesalahan aturan makna contoh : Kesalahan SEMANTIK Kesalahan aturan makna contoh : Tipe Data VAR Siswa : integer; BEGIN Siswa := “Budi”; END;

Kesalahan aturan makna contoh : Kesalahan SEMANTIK Kesalahan aturan makna contoh : Variabel belum didefinisikan VAR A : integer; BEGIN B := A + 1; END;

Mendeteksi kesalahan Langkah Penanganan Melaporkan kesalahan Solusi perbaikan

Kode Kesalahan Isi Laporan Kesalahan Pesan Kesalahan Nama dan Atribut Identifier Tipe Data

Pesan Kesalahan : unknown identifier Nama Identifier : Hitung Isi Laporan Kesalahan Contoh : Error 14 Hitung : unknown identifier Artinya : Kode Kesalahan : 14 Pesan Kesalahan : unknown identifier Nama Identifier : Hitung

Reaksi Kompilator Tingkatan reaksi kompilator pada kesalahan : Tidak dapat diterima Benar, tapi kurang dapat diterima Dapat diterima

Reaksi Kompilator Reaksi yang tidak dapat diterima Compiler crash Looping tak berhingga Menghasilkan Program Objek yang salah

Reaksi Kompilator Reaksi yang kurang dapat diterima Setiap menemukan suatu kesalahan, kompilator melaporkan-nya, tetapi kemudian berhenti (harus mengulang proses kompilasi)

Reaksi Kompilator Reaksi yang dapat diterima Recovery/Memulihkan suatu kesalahan (men-stabilkan), kemudian menemukan error lainnya Repair/Memperbaiki kesalahan (memodifikasi source-code) dan membuatnya valid

Error Recovery Mengembalikan compiler ke kondisi stabil (supaya dapat melanjutkan proses) Beberapa strategi yang digunakan : Mekanisme Ad Hoc Syntax Directed Recovery Secondary Error Recovery Context Sensitive Recovery

Error Recovery Mekanisme Ad Hoc Dilakukan berdasarkan keinginan pembuat kompilator.

Syntax Directed Recovery Dilakukan berdasarkan sintaks. Error Recovery Syntax Directed Recovery Dilakukan berdasarkan sintaks. Contoh : begin A:= A + 1 B := B – 1; C := B – A; end; Dikenali sebagai begin <stmt> ? <stmt> ; <stmt>; end;

Secondary Error Recovery Dilakukan untuk melokalisasi error. Terdapat 2 jenis, yaitu : Panic Mode maju terus sampai bertemu delimiter (misalnya “;”) Unit Deletion menghapus keseluruhan unit sintaktik

Context Sensitive Recovery Mengatasi kesalahan semantik. Error Recovery Context Sensitive Recovery Mengatasi kesalahan semantik. Contoh : VAR A : integer; BEGIN B := A + 1; END; Maka, tipe data B diasumsikan bertipe integer.

Error Repair Proses modifikasi program sumber. (supaya dapat ditranslasi) Beberapa strategi yang digunakan : Mekanisme Ad Hoc Syntax Directed Repair Context Sensitive Repair Spelling Repair

Error Repair Mekanisme Ad Hoc Dilakukan berdasarkan keinginan pembuat kompilator.

Syntax Directed Repair Error Repair Syntax Directed Repair Menyisipkan simbol terminal yang hilang / menghapus terminal penyebab kesalahan. Contoh : WHILE A <= 1 A:= A + 1; Maka keyword ”DO” akan ditambahkan

Context Sensitive Repair Memperbaiki kesalahan semantik. Error Repair Context Sensitive Repair Memperbaiki kesalahan semantik. Tipe Data VAR A : integer; BEGIN B := A + 1; END; Maka, dibuat definisi variabel baru B yang bertipe integer

Perbaikan kesalahan pengetikan. WHILLE A>1 DO Error Repair Spelling Repair Perbaikan kesalahan pengetikan. WHILLE A>1 DO Maka, WHILLE akan diganti menjadi WHILE

OPTIMASI KODE

Machine Dependent  tergantung mesin Jenis Optimasi Menghasilkan program yang lebih efisien. (ukuran lebih kecil, eksekusi lebih cepat) Berdasarkan ketergantungan pada mesin : Machine Dependent  tergantung mesin Machine Independent  tidak tergantung mesin

Jenis Optimasi Optimasi Machine Independent, dibagi 2 : - Lokal  fokus di suatu blok sederhana Global  kaitan antara blok-blok sederhana

mengganti ekspresi dengan nilai komputasi. Optimasi LOKAL Folding mengganti ekspresi dengan nilai komputasi. Contoh : A := 2 + 3 + B Diubah menjadi A := 5 + B

Redundant-Subexpression Elimination Optimasi LOKAL Redundant-Subexpression Elimination memakai hasil komputasi yang sudah ada. Contoh : A := B + C X := Y + B + C Bila belum ada perubahan nilai variabel, baris terakhir dapat diubah menjadi : X := Y + A

Optimasi LOKAL Optimasi Iterasi Loop Unrolling Mengganti perintah perulangan, dengan menulis perintah beberapa kali. Contoh : FOR i:=1 TO 2 DO B[i] := 0; Menjadi : B[1] := 0; B[2] := 0;

Optimasi LOKAL Optimasi Iterasi Frequency Reduction mengeluarkan operasi yang tidak berubah kondisi dari dalam perulangan

Optimasi LOKAL FOR I:=1 TO 10 DO BEGIN X := 5; B := B + X; END; Contoh : FOR I:=1 TO 10 DO BEGIN X := 5; B := B + X; END; Menjadi :

Optimasi LOKAL Strength Reduction Penggantian suatu operasi dengan operasi lain yang lebih cepat dieksekusi. Contoh : A := A + 1; Menjadi : INC(A);

Optimasi GLOBAL Biasanya menggunakan Analisis Flow. - Analisis ini menggunakan graf untuk menggambarkan berbagai alur yang memungkinkan untuk eksekusi program

Bagian kode yang tidak digunakan Optimasi GLOBAL Optimasi oleh Programmer Bagian kode yang tidak digunakan Contoh : X := 5; IF X=0 THEN A := A + 1; Kode A := A + 1 tidak pernah digunakan

Parameter yang tidak digunakan Optimasi GLOBAL Optimasi oleh Programmer Parameter yang tidak digunakan Procedure Hitung(a,b,c:integer); var X : integer begin X := a + b; end; Parameter C tidak pernah digunakan

Variabel yang tidak digunakan Optimasi GLOBAL Optimasi oleh Programmer Variabel yang tidak digunakan Program Input; var a, b : integer; begin a := 5; end; Variabel b tidak pernah digunakan

Variabel tanpa nilai awal Optimasi GLOBAL Optimasi oleh Programmer Variabel tanpa nilai awal Program Tes; var a, b : integer; begin a := 5; a := a + b; end; Variabel b belum diberikan nilai awal

Penghapusan kode yang tidak digunakan Optimasi GLOBAL Optimasi oleh Kompilator Efisiensi program Penghapusan kode yang tidak digunakan

TABEL INFORMASI

Jenis Tabel Informasi Tabel Identifier  list identifier dalam program Tabel Array  list info tambahan untuk array Tabel Blok  list variabel pada blok yang sama Tabel Real  list elemen tabel bernilai real Tabel String  list informasi string Tabel display  list blok yang aktif

REFERENSI . . . Alfred v. a. & ullman J.D., Compilers Principles Technique and Tools, Addison Wesley, 1988

(source-code input, source-code compiler, .exe compiler, laporan) TUGAS BESAR Buatlah MAKALAH dari COMPILER yang dibangun ! (source-code input, source-code compiler, .exe compiler, laporan) DEADLINE : H-1 UAS

Format Laporan : > MASUKAN > ANALISIS LEKSIKAL (Deskripsi & Contoh) > ANALISIS SINTAKSIS (Deskripsi & Contoh) > ANALISIS SEMANTIK (Deskripsi & Contoh) > PENANGANAN KESALAHAN (Deskripsi & Contoh) > PEMBANGKITAN KODE (Deskripsi & Contoh) > OPTIMASI KODE (Deskripsi & Contoh) > KELUARAN (Contoh Input Kode & Keluarannya) > KESIMPULAN (Kekurangan & Kelebihan dari Compiler) > Lampiran : USER MANUAL (Cara Penggunaan Compiler)