Senin, 15 Desember 2014

Teknik Kompilasi (Reaksi Kompilator dalam sebuah Program)



REAKSI KOMPILATOR PADA KESALAHAN DALAM SEBUAH PROGRAM



Reaksi yang dapat diterima
Reaksi yang sudah dapat dilakukan (dewasa ini), yaitu melaporkan kesalahan, dan selanjutnya melakukan:
Recovery / pemulihan, lalu melanjutkan menemukan kesalahan yang lain bila masih ada.
Repair / Perbaikan kesalahan, lalu melanjutkan proses translasi dan menghasilkan program objek yang valid.

Reaksi yang belum dapat dilakukan (dewasa ini), yaitu kompilator mengkoreksi kesalahan, lalu menghasilkan program objek sesuai dengan yang diinginkan pemrogram.

ERROR RECOVERY
Tujuannya mengembalikan parser ke kondisi stabil (supaya bisa melanjutkan proses parsing ke posisi selanjutnya).

Strategi yang dilakukan sebagai berikut :
Mekanisme Ad Hoc : Recovery yang dilakukan tergantung dari pembuat kompilator sendiri / Spesifik, dan tidak terikat pada suatu aturan tertentu. Cara ini biasa disebut juga special purpose error recovery
Syntax Directed Recovery : Melakukan recovery berdasarkan syntax
Contoh : program
                                       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 kesalahan, caranya :
Panic mode
Maju terus dan mengabaikan teks sampai bertemu delimeter (misal ‘:’)
contoh :
                        if A := 1
                            Kondisi := true;

Teks diatas terjadi kesalahan karena tidak ada instruksi THEN, kompilator akan maju terus sampai bertemu ‘;’

Unit deletion
Menghapus keseluruhan suatu unit sintaktik (misal: <block>,<exp>,<statement> dan sebagainya), efeknya sama dengan panic mode tetapi unit deletion memelihara kebenaran sintaksis dari source program.

Context Sensitive Recovery
Berkaitan dengan semantik, misal bila terdapat variabel yang belum dideklarasikan (undifined variabel) maka diasumsikan tipenya berdasarkan kemunculannya.

Sekian...


Tidak ada komentar:

Posting Komentar

Image Enhancement

Image Enhancement Diketahui : r 1 = 0,3   ; r 2 =   0,5    ; r 3 = 0,8   s 1 = 0,1   ; s 2 =   0,4   ; s 3 =   0,6 ...