Analisis Leksikal
ANALISIS LEKSIKAL
Tugas utama penganalisis leksikal adalah memecah tiap baris source menjadi token-token. Pekerjaan yang dilaksanakan antara lain:
- Membuang komentar.
- Menyerahamkan huruf kapital menjadi huruf kecil atau sebaliknya.
- Membuang white space.
- Mengenterpretasi compiler directive.
- Berkomunikasi dengan simbol table (identifier type size).
- Membuang listing.
Finite-State Automata (FSA)
Analisis leksikal lebih mudah diimplementasikan pada Finite State Machine atau Finite State Automata.
Materi ini mempelajari sehimpunan state (anggota himpunannya terbatas/finite) beserta dengan aturan-aturan perpindahan dari satu state ke state lainnya.
Sehimpunan state tersebut menyatakan satu proses dan aturan-aturannya menyatakan kemungkinan yang terjadi dalam menyelesaikan proses tersebut.
State Diagram dan State Table
Contoh:
Ada mesin penjual permen, yang memuat aturan-aturan, sebagai berikut:
Harga permen Rp. 25.00. Mesin tersebut dapat dimasuki 3 jenis koin: Rp.5,00 (n), Rp. 10,00 (d), Rp.25,00 (q). $ = simbol untuk mengeluarkan permen.
Kemungkinan yang terjadi dari contoh diatas digambarkan dalam state diagram berikut ini :
FSA digunakan untuk membentuk token masukkan yang berupa sederetan karakter (string) dibaca dalam FSA sampai pada acceptance state.
Satu lexemes untuk satu token terbentuk, kemudian dilanjutkan untuk token-token berikutnya.
Contoh
State diagram untuk pembentukan token didefinisikan seperti diagram berikut:
Comments
Post a Comment