Cara Penanganan Kesalahan

Slides:



Advertisements
Presentasi serupa
PROCEDURE Temu IX BANGHER.
Advertisements

Pengayaan Software/Hardware dan Pengantarmukaan
PROCEDURE  PROCEDURE   Prosedur diawali dengan kata cadangan Procedure di dalam bagian deklarasi prosedur. Prosedur dipanggil dan digunakan di dalam blok.
TEORI ALGORITMA.
Konsep Dasar Bahasa Pascal
Pengenalan Bahasa Pemrograman Pascal
CARA PENANGAN KESALAHAN
RECORD.
Interaksi Manusia dan Komputer
STRUKTUR DATA PERTEMUAN 5
Pengembangan Evangs Mailoa PHP WEB. Awalnya PHP merupakan singkatan dari Personal Home Page. Sesuai dengan namanya, PHP digunakan untuk membuat website.
Algoritma Dasar Dalam membuat suatu program komputer, menyusun algoritma adalah langkah pertama yang harus dilakukan Dalam membuat algoritma dapat digunakan.
Pengantar Teknik Kompilasi
Analisis Semantik.
KONSEP dan NOTASI BAHASA
KOMPILASI KOMPILATOR (COMPILER) adalah :
Bahasa Pemrograman Tingkat Tinggi
Pemograman 1 Pertemuan 6.
PL/SQL PROGRAMMING PL/SQL adalah prosedur berkelanjutan dari Oracle -SQL yang menawarkan satu bentuk bahasa pemrograman. PL/SQL memungkinkan user atau.
Lexical Analyzer (Scanner)
PEMROGRAMAN IMPERATIF
Kuliah 2 : Analisis Leksikal
Analisis Leksikal.
Pemrograman Visual (Borland Delphi 7.0)
Praktikum Dasar-Dasar Pemrograman
STRUKTUR COMPILLER.
Cara Penanganan Kesalahan
Variabel, Konstanta, Tipe Data Dan Operator pada VB
MATERI PERKULIAHAN TEKNIK KOMPILASI
Pertemuan 3 Variabel & Konstanta.
Materi Kuliah 1. Pertemuan ke : 1 Pengenalan Komputer dan Pemrograman
KONSEP dan NOTASI BAHASA
Istiqomah, S.Kom/Tekkom 2013
Struktur Program Pascal
Cara Penanganan Kesalahan
Dasar-Dasar Pemrograman
Perulangan (looping) Oleh: Sri Supatmi.
SUBRUTIN.
Analisa Semantik, Kode Antara,
Konsep Dasar Bahasa Pascal
Analisis semantik, kode antara dan pembangkitan kode
Pesan-pesan kesalahan
Pengantar Teknik Kompilasi
SEMANTIKS Pertemuan Ke-3.
Analisis leksikal (Scanner)
PENANGANAN KESALAHAN DAN HELP DOKUMENTASI
Pengantar Teknik Kompilasi
Pseudocode – Tipe Data, Variabel, dan Operator
Teknik Kompilasi Dosen: Utami Dewi W.,S.Kom
ANALISIS LEKSIKAL (Scanner)
Analisis leksikal ( SCANNER )
Analisa Semantik, Kode Antara,
Teknik Optimasi.
PRAKTIKUM DASAR PEMROGRAMAN
Tipe data & Variabel 1. Aturan Leksikal. 2. Operator. 3. Statement
Tipe data & Variabel 1. Aturan Leksikal. 2. Operator. 3. Statement
Proses kompilasi COMPILATOR.
Konsep dan Notasi Bahasa
CARA PENANGAN KESALAHAN
Konsep Bahasa Pemrograman I Operator
Ilustrasi Proses Kompilasi
KONSEP dan NOTASI BAHASA
RECORD / REKAMAN.
Semantics Analyser by Kustanto
CARA PENANGAN KESALAHAN
Cara Penanganan Kesalahan
TEKNIK OPTIMASI & TABEL INFORMASI
VARIABEL Variabel merupakan tempat untuk menyimpan nilai sementara dari suatu perhitungan. Untuk mendeklarasikan sebuah variabel digunakan pernyataan.
Fathiah, S.T.,M.Eng Universitas Ubudiyah Indonesia
Memori dan Scope Variabel
Transcript presentasi:

Cara Penanganan Kesalahan

Kesalahan Program Sebuah kompilator akan sering menemui program yang mengandung kesalahan. Oleh karena itu, kompilator harus memiliki strategi yang dapat dilakukan untuk menangani kesalahan-kesalahan tersebut. Jenis-jenis kesalahan program : Kesalahan leksikal Kesalahan sintaks Kesalahan semantik

Kesalahan Leksikal Yaitu kesalahan dalam mengeja keyword Contoh : THEN ditulis sebagai TEN / THN

Kesalahan Sintaks Yaitu kesalahan dalam penulisan sintaks, misalnya pada operasi aritmatika dengan jumlah parenthesis (kurung) yang tidak pas. Contoh : A : = X + (B*(C+D)

Kesalahan Semantik Kesalahan dalam penentuan tipe data Contoh : VAR siswa : integer siswa := ‘yanuar’ Kesalahan karena belum mendefinisikan variabel Contoh : B := B + 1; Variabel B belum didefinisikan

Penanganan Kesalahan Langkah-langkah Mendeteksi kesalahan Melaporkan kesalahan Tindak lanjut pemulihan/perbaikan

Penanganan Kesalahan Sebuah kompilator yang menemukan kesalahan akan melakukan pelaporan, yang biasanya meliputi : Kode kesalahan Pesan kesalahan dalam bahasa manual Nama & atribut identifier Tipe-tipe yang terkait dengan type checking Misal : Error 162 Jumlah : unknown identifier Artinya : kode kesalahan = 162, pesan kesalahan = unknown identifier, nama identifier = jumlah

Reaksi Kompilator Reaksi-reaksi yang tidak dapat diterima Kompilator crash : berhenti atau hang Looping : kompilator masih berjalan, tapi tidak pernah berhenti karena looping yang tak berhingga. Menghasilkan program objek yang salah : kompilator melanjutkan proses sampai selesai tapi program objek yang dihasilkan salah ketika saat dieksekusi.

Reaksi Kompilator (lanjutan) Reaksi yang benar, tetapi kurang dapat diterima dan kurang bermanfaat Kompilator menemukan kesalahan pertama, melaporkannya, lalu berhenti (halt). Kompilator hanya mampu mendeteksi dan melaporkan kesalahan satu kali kompilasi. Pemrogram akan membuang waktu untuk melakukan pengulangan kompilasi setiap kali terdapat error.

Reaksi Kompilator (lanjutan) Reaksi-reaksi yang dapat diterima Reaksi yang sudah dapat dilakukan, yaitu kompilator melaporkan error, selanjutnya melakukan recovery dan repair. Reaksi yang belum dapat dilakukan, yaitu kompilator mengoreksi kesalahan lalu menghasilkan program objek sesuai dengan yang diinginkan pemrogram.

Error Recovery Bertujuan untuk mengembalikan parser ke kondisi stabil agar dapat melanjutkan proses parsing ke posisi selanjutnya. Strategi error recovery : Mecanisme Ad Hoc Syntax directed recovery Secondary Error Recovery Context sensitive recovery.

Mekanisme Ad Hoc Recovery yang dilakukan tergantung dari pembuat kompilator itu sendiri. Tidak terikat pada suatu aturan tertentu. Disebut juga dengan istilah special purpose error recovery.

Syntax Directed Recovery Melakukan recovery berdasarkan syntax. Misalnya : begin A := A + 1 B := B + 1; C := C + 1 end; Kompilator akan mengenali sebagai (dalam notasi BNF) Begin <statement>? <statement>; <statement> end; ? Akan diperlakukan sebagai ;

Secondary error recovery Berguna untuk melokalisir error, caranya : Panic mode Maju terus dan mengabaikan teks sampai bertemu delimiter (misal ‘;’). Contoh : IF A = 1 kondisi := true Pada contoh di atas, kesalahan karena tidak ada instruksi THEN, kompilator akan terus maju sampai bertemu dengan titik koma. Unit deletion Menghapus keseluruhan suatu unit sintaktik, (misal : <block>, <exp>, <statement> dsb). Efeknya mirip dengan panic mode tetapi unit deletion memelihara kebenaran syntax dari source program dan mempermudah untuk melakukan error repairing lebih lanjut.

Context Sensitive Recovery Berkaitan dengan semantics, missal bila terdapat variabel yang belum dideklarasikan, maka diasumsikan tipenya berdasarkan kemunculannya. Contoh B := ‘nama’ B belum dideklarasikan, maka B diasumsikan sebagai string.

Error Repair Bertujuan untuk memodifikasi source program dari kesalahan dan membuatnya valid Mekanisme error repair: Mecanisme Ad Hoc Syntax directed repair Context sensitive recovery. Spelling repair

Mekanisme Ad Hoc Repair yang dilakukan tergantung dari pembuat kompilator itu sendiri.

Syntax Directed Repair Menyisipkan symbol terminal yang dianggap hilang atau membuang terminal penyebab kesalahan. Contoh : WHILE A < 1 I := I + 1 Contoh lain : Procedure increment; begin X := X + 1; end; end;

Context Sensitive Recovery Perbaikan dilakukan pada kesalahan Tipe Identifier, Diatasi dengan membangkitkan identifier dummy, misalnya : VAR A : string begin A := 0; end; Kompilator akan memperbaiki kesalahan dengan membangkitkan identifier baru, misalnya B yang bertipe integer. Tipe konstanta, diatasi dengan membangkitkan konstanta baru dengan tipe yang tepat

Spelling Repair Memperbaiki kesalahan pengetikan pada identifier. Misal : WHILLE A=1 DO identifier yang salah tersebut akan diperbaiki menjadi WHILE