Anda di halaman 1dari 9

ANALISA LEKSIKAL

(SCANNER)
Universitas Indraprasta PGRI
Analisis Leksikal/ Scanning
Tahap pertama dari compiler adalah analisis leksikal atau
scanning, yang bertugas mambaca sumber program dari
suatu file berdasarkan karakter dan membaginya kedalam
token/ logika unit.
Analisis Leksikal/ Scanning
Tugas – tugas analisa leksikal antara lain :
• Melakukan pembacaan kode sumber dengan merunut karakter demi
karakter.
• Mengenali besaran leksik (identifier, konstanta, operator, delimiter).
• Mentransformasi menjadi sebuah token dan menentukan jenis tokennya.
• Mengirimkan token.
• Membuang atau mengabaikan white-space dan komentar dalam program.
• Menangani kesalahan.
• Menangani tabel symbol
Token/ Besaran Leksikal
Token utama dalam program disebut besaran leksikal, dimana dibagi
menjadi 4 bagian. Yaitu :
• Identifier, merupakan keyword yang telah disediakan oleh program
dan juga variable ( IF, Then, Begin, Writeln, Else, Print )
• Konstanta, merupakan nilai tetap yang tidak dapat berubah ( 10,
‘Nilaia A=10’ )
• Operator, merupakan operator yang digunakan pada program (=, + , -
, /)
• Delimiter, merupakan pemisah dari program ( Spasi, ; , enter )
Ekspresi Reguler
Digunakan untuk merepresentasikan ‘pattern’/ bentuk
string untuk setiap karakter, dan juga menjelaskan suatu set
string.
Contoh :
Terdapat karakter dengan anggota Σ = {a, b, c} dimana nilai string
yang dihasilkan harus sekali b muncul.
Dengan nilai string yang kemungkinan muncul :
B, aba, aabc, ccbaca,…
Ekspresi Reguler untuk
Programming
Pada program pascal, angka/ digit terdiri dari decimal.
Contoh : 4578, 0933
Dapat dibuat ER :
Nama ER : nat
Anggota ER : 0..9
Sehingga ER : nat = [0..9]
Ekspresi Reguler untuk
Programming
Identifier terdiri dari semua karakter dari a..z, A..Z dan 0..9
Dengan kemungkinan kemunculan abc, aabcad, a01, Z09 dan lain-
lain.
Nama ER : Letteranggota : {a..z, A..Z}
Nama ER : Digit anggota : {0..9}
Maka : Letter = [a..z, A..Z]
Digit = [0..9]
Sehingga : Identifier = Letter (Letter|digit)
Finite State Automata (FSA)
Digunakan untuk menjelaskan proses terbentuknya
‘pattern’/ bentuk dari inputan string dan juga dapat
digunakan untuk konstruksi scanner.
Contoh :
Finite State Automata (FSA)

Anda mungkin juga menyukai