MATERI PERKULIAHAN TEKNIK KOMPILASI PENANGANAN KESALAHAN OPTIMASI KODE
- Slides: 42
MATERI PERKULIAHAN TEKNIK KOMPILASI PENANGANAN KESALAHAN, OPTIMASI KODE, TABEL INFORMASI 6 Ken Kinanti Purnamasari
PENANGANAN KESALAHAN
Jenis Penanganan - Kesalahan LEKSIKAL - Kesalahan SINTAKS - Kesalahan SEMANTIK
Kesalahan LEKSIKAL - Kesalahan mengeja keyword contoh : THEN ditulis sebagai TEN
Kesalahan SINTAKS - Kesalahan penulisan urutan token contoh : Operasi aritmatika yang jumlah tanda kurung-nya kurang / tidak pas. A : = B + ( C *( D + E );
Kesalahan SEMANTIK - Kesalahan aturan makna contoh : § Tipe Data VAR Siswa : integer; BEGIN Siswa : = “Budi”; END;
Kesalahan SEMANTIK - Kesalahan aturan makna contoh : § Variabel belum didefinisikan VAR A : integer; BEGIN B : = A + 1; END;
Langkah Penanganan - Mendeteksi kesalahan - Melaporkan kesalahan - Solusi perbaikan
Isi Laporan Kesalahan - Kode Kesalahan - Pesan Kesalahan - Nama dan Atribut Identifier - Tipe Data
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, kemudian menemukan error lainnya jika ada § Repair/Memperbaiki kesalahan, kemudian melanjutkan proses translasi dan menghasilkan program objek yang benar
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.
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;
Error Recovery - 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
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.
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
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
Error Repair - Spelling Repair Perbaikan kesalahan pengetikan. WHILLE A>1 DO Maka, WHILLE akan diganti menjadi WHILE
OPTIMASI KODE
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 Machine Independent, dibagi 2 : - Lokal - Global
Optimasi LOKAL - Folding mengganti ekspresi dengan nilai komputasi. Contoh : A : = 2 + 3 + B Diubah menjadi A : = 5 + B
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 Contoh : FOR I: =1 TO 10 DO BEGIN X : = 5; B : = B + X; END; Menjadi : X : = 5; FOR I: =1 TO 10 DO BEGIN B : = B + X; END;
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
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
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
Optimasi GLOBAL - Optimasi oleh Programmer § Variabel yang tidak digunakan Program Input; var a, b : integer; begin a : = 5; end; Variabel b tidak pernah digunakan
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
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. . . Firrar U. , Teknik Kompilasi, J&J Learning Yogyakarta, 2001 Alfred v. a. & ullman J. D. , Compilers Principles Technique and Tools, Addison Wesley, 1988
- Teknik optimasi pada teknik kompilasi
- Teknik optimasi pada teknik kompilasi
- Compile code meaning
- Materi teknik kompilasi
- Materi teknik kompilasi
- Contoh program teknik kompilasi
- Makalah penanganan kesalahan dan help dokumentasi
- Penanganan kesalahan dan help dokumentasi
- Soal uas pengantar teknik kompilasi gunadarma
- Diagram sintaks teknik kompilasi
- Bentuk umum dari quadruples notation adalah
- Analisis leksikal dalam teknik kompilasi
- Analisis semantik teknik kompilasi
- Pembangkit kode antara
- Introduction syntax
- Kode
- Memaksimalkan nilai perusahaan
- Optimisasi ekonomi
- Teknik optimasi dan peralatan manajemen baru
- Teknik manajemen baru
- Flowchart sistem perkuliahan
- Percepatan toefl/imka uin walisongo
- Kalkulus integral
- Kontrak perkuliahan
- Pengertian dari rangkuman
- Notanerd
- Kontrak perkuliahan
- Encodern
- Macam macam galat
- Gambar
- Penilaian anekdot tk
- Compiler adalah
- Slidetodoc.com
- Dibawah ini adalah sifat dan definisi dari package kecuali
- Proses kompilasi
- Utm odl
- Materi ekonomi teknik sipil
- Sejarah riset operasi
- Peramalan judgemental
- Teknik proyeksi bisnis
- Apa yang dimaksud dengan teknik presentasi metode kupas
- Gelombang elektromagnetik
- Integral parsial