Tugas-tugas Analsis Leksikal

Tugas-tugas Analisis leksikal antara lain sebagai berikut : 

1. Konversi Program Sumber Menjadi Barisan Token. Mengubah program sumber yang dipandang sebagai barisan byte/karakter menjadi token. 

2. Menangani Kerumitan Sistem Masukkan/Keluaran. Karena analisis leksikal biasanya berhubungan langsung dengan kode sumber yang diwadahi file, maka analisis leksikal juga bertindak sebagai benteng untuk komponen-komponen lain di kompilator dalam mengatasi keanehan-keanehan sistem masukkan/keluaran sistem operasi dan sistem komputer. 

Optimasi perlu dilakukan agar analisis leksikal membaca karakter degan sekaligus membaca sejumlah besar bagian file. Perangkat masukkan/keluaran benar-benar diisolasi agar tidak terlihat oleh parser dan komponen-komponen kompilator yang lain. 

2.3 Tugas-tugas tambahan Analisis Leksikal 

Tugas-tugas tambahan Analisis Leksikal antara lain sebagai berikut : 

1. Penghilangan komentar dan whitespace (tab,spasi,karakter lainnya).Tindakan housekeeping dilakukan scanner sehingga mengisolasikan dari parser dan komponen-komponen kompilator lain. 

Peran ini menyederhanakan perancangan parser (dan grammar bahasa pemrograman). Scanner juga mencatat nomor baris saat itu sehingga penanganan kesalahan yang cerdas dapat mengirim pesan kesalahan dengan lebih akurat. 



2. Konversi literal/konstanta numerik menjadi tipe data tertentu. Analisis leksikal dapat mengirim token, dan nilainya. Nilai ini biasa disebut atribut. Namun demikian, bila analisis leksikal ditambahin dengan tugas-tugas tambahan yang terlalu banyak juga akan menjadi tidak baik. Karena itu membatasi analisis 

leksikal hanya untuk melakukan tugas pengenalan pola token (ditambah membuang komentar) adalah mempermudah pemeliharaan. 

2.4 Tahap-tahap Pelaksanaan Analisis Leksikal 

Tahap Pelaksanaan Analisis Leksikal antara lain sebagai berikut : 

ü Pada single one pass. 

Terjadi interaksi antara scanner dan parser. Sacnner dipanggil saat parser memerlukan token berikutnya. Pendekatan ini lebih baik karena bentuk internal program sumber yang lengkap tidak perlu dibangun dan disimpan di memori sebelum parsing dimulai. 

ü Pada separate pass. 

Scanner memproses secara terpisah, dilakukan sebelum parsing. Hasil scanner disimpan dalam file. Dari file tersebut, parsing melakukan kegiatannya.
Scanner mengirim nilai-nilai integer yang mempresentasikan bentuk internal token, bukan nilai-nilai string. 

Keunggulan cara ini adalah ukurannya kecil dan tetap. Parser sangat lebih efisien bekerja dengan nilai integer yang mempresentasikan simbol daripada string nyata dengan panjang variabel. 

2.5 Implementasi Analisis Leksikal 

Implementasi Analisis Leksikal antara lain sebagai berikut : 

ü Pengenalan Token. 

1. Scanner harus dapat mengenali token 

2. Terlebih dahulu dideskripsikan token-token yang harus dikenali 

ü Pendeskripsian Token. 

1. Menggunakan reguler grammar. Menspesifikasikan aturan-aturan pembangkit token-token dengan kelemahan reguler grammar 



menspesifikasikan token berbentuk pembangkit, sedang scanner perlu bentuk pengenalan. 

2. Menggunakan ekspresi grammar. Menspesifikasikan token-token dengan ekspresi reguler. 

3. Model matematis yang dapat memodelkan pengenalan adalah finite-state acceptor (FSA) atau finite automata. 

ü Implementasi Analisis Leksikal sebagai Finite Automata. 

Pada pemodelan analisis leksikal sebagai pengenal yang menerapkan finite automata, analisis leksikal tidak cuma hanya melakukan mengatakan YA atau TIDAK. Dengan demikian selain pengenal, maka analisis leksikal juga melakukan aksi-aksi tambahan yang diasosiasikan dengan string yangsedang diolah. 

Analisis leksikal dapat dibangun dengan menumpangkan pada konsep pengenal yang berupa finite automata dengan cara menspesifikasikan rutin-rutin (aksi-aksi) tertentu terhadap string yang sedang dikenali. 

ü Penanganan Kesalahan di Analisis Leksikal Hanya sedikit kesalahan yang diidentifikasi di analisis leksikal secara mandiri karena analisis leksikal benar-benar merupakan pandangan sangat lokal terhadap program sumber. 

Bila ditemui situasi dimana analisis leksikal tidak mampu melanjutkan proses karena tidak ada pola token yang cocok, maka terdapat beragam alternatif pemulihan. yaitu: 

1. "Panic mode" dengan menghapus karakter-karakter berikutnya sampai analisis leksikal menemukan token yang terdefinisi bagus 

2. Menyisipkan karakter yang hilang 

3. Mengganti karakter yang salah dengan karakter yang benar 

4. Mentransposisikan 2 karakter yang bersebelahan. 

Salah satu cara untuk menemukan kesalahan-kesalahan di program adalah menghitung jumlah transformasi kesalahan minimum yang diperlukan untuk mentransformasikan program yang salah menjadi program yag secara sintaks benar. 





2.6 Input Buffering 

Perancangan analisis leksikal seharusnya dapat membuat buffering masukkan yang membantu mempercepat proses pembacaan dari file serta mempunyai fleksibelitas yang tinggi agar analisis leksikal tidak bergantung platform sehingga mempunyai portabilitas yang tinggi.

Subscribe to receive free email updates:

0 Response to "Tugas-tugas Analsis Leksikal "

Post a Comment