MATERI PERKULIAHAN TEKNIK KOMPILASI PENANGANAN KESALAHAN OPTIMASI KODE
- Slides: 44
MATERI PERKULIAHAN TEKNIK KOMPILASI PENANGANAN KESALAHAN, OPTIMASI KODE, TABEL INFORMASI 10 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 (menstabilkan), 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.
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 fokus di suatu blok sederhana - Global kaitan antara blok-blok sederhana
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. . . Alfred v. a. & ullman J. D. , Compilers Principles Technique and Tools, Addison Wesley, 1988
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)
- Teknik optimasi pada teknik kompilasi
- Tabel informasi adalah
- Kode antara adalah
- Materi teknik kompilasi
- Analisis semantik teknik kompilasi
- Contoh kesalahan leksikal
- Makalah penanganan kesalahan dan help dokumentasi
- Makalah penanganan kesalahan dan help dokumentasi
- Notasi quadruples
- Analisis leksikal dalam teknik kompilasi
- 3 14 phi
- Analisis semantik teknik kompilasi
- Notasi bnf
- Notasi postfix teknik kompilasi
- Translator teknik kompilasi
- Diagram sintaks
- Optimasi nilai perusahaan adalah
- Berbagai teknik optimasi dan peralatan manajemen baru
- Peralatan manajemen baru untuk optimasi
- Contoh soal optimasi terkendala dengan substitusi
- Kalkulus integral
- Kontrak perkuliahan
- Jelaskan perbedaan ringkasan, abstrak, dan sintesis
- Erd kuliah
- Kontrak perkuliahan
- Flowchart sistem perkuliahan
- Percepatan toefl/imka uin walisongo
- Encoder ic 74148
- Kesalahan teknik adalah
- Gambar
- Struktur kompilasi
- Hasil kompilasi dari berkas java adalah
- Fase fase proses kompilasi
- Utm obe
- Contoh catatan anekdot usia 3-4 tahun
- Contoh kompilasi
- Materi teknik proyeksi bisnis
- Materi teknik presentasi
- Materi medan elektromagnetik teknik elektro
- Kalkulus teknik informatika
- Pengertian teknik proyeksi bisnis
- Materi pengolahan citra teknik informatika
- Materi kuliah teknik penulisan karya ilmiah
- Materi struktur data teknik informatika
- Materi ekonomi teknik sipil