Upload
stu
View
74
Download
2
Embed Size (px)
DESCRIPTION
ANALISIS LEKSIKAL. Letak analisis leksikal pada struktur kompiler Pengenalan analisis leksikal Scanning berdasarkan MSH Tugas analisis leksikal. Pembahasan. Struktur Kompiler. - PowerPoint PPT Presentation
Citation preview
ANALISIS LEKSIKAL
Pembahasan
Letak analisis leksikal pada struktur kompiler Pengenalan analisis leksikal Scanning berdasarkan MSH Tugas analisis leksikal
Struktur Kompiler
Analisis Leksikal – Apa itu?[1]
Masukan bagi sebuah compiler/interpreter adalah program sumber yang strukturnya berupa deretan dari karakter-karakter– or rather unstructured
Pemrosesan individual karakter yang ketidakefisiennya sangat tinggi» Imagine recognizing ‘while’ as ‘w’ ‘h’ ‘i’ ‘l’
‘e’ Oleh karenanya, hal pertama yang kita
perhatikan adalah bentuk kode sumbernya
Analisis Leksikal – Apa itu?[2]
A Lexical Analyzer (scanner) mengubah deretan karakter-karakter menjadi deretan token-token– i.e. a scanner “tokenizes” the input
Sebuah token (lexeme or syntactic unit) adalah komponen dasar leksikal dari program
Analisis Leksikal–Token[3]
Token adalah level entitas yang paling rendah dalam diagram sintaks
Jenis-jenis token antara lain:– identifiers (e.g. variable & function names,
etc.)– keywords (like while, if, function, etc.)– operators (like +, -, *, ++, +=, etc.)– literals (constant values like 27.3, “Hello”,
etc.)– punctuation (like ‘;’, ‘:’, ‘,’, etc.)
Analisis Leksikal–Tokens[4]
Consider a simple program and its tokens:
Fungsi Scanner
Melakukan pembacaan kode sumber dengan merunut karakter demi karakter
Mengenali besaran leksik Mentransformasi menjadi sebuah token dan
menentukan jenis tokennya Mengirim token Membuang blank dan komentar dalam program Menangani kesalahan Beberapa scanners memasukkan simbol ke
dalam tabel simbol (dibahas kemudian)
Scanning berdasarkan MSH
Hampir sebagian besar teknik yang digunakan untuk membangun scanners menggunakan mesin stata hingga (MSHs)
MSHs dapat dengan mudah digunakan untuk mengenali kontruksi bahasa (i.e. tokens) yang digambarkan dengan bahasa regular
Membangun Scanner
Bagaimana scanner berinteraksi dengan parser?– parser akan menjadi bagian selanjutnya dari
kompilasi Perhatikan gambar berikut:
Aksi Scanner [1]
Karena scanner mengubah dari stata ke stata, maka harus dilakukan sesuatu dengan karakter-karakter tersebut untuk mengenali sesuai dengan pembentukan token yang akan dikembalikan pada tahap parser
Dalam beberapa kasus, harus menambahkan character seperti terlihat pada pembentukan token dan memanfaatkannya (menjadikan karakter masukan berikutnya menjadi kelihatan)– E.g. when scanning characters in an identifier
Aksi Scanner [2]
Dalam kasus lainnya harus menjaga character dan mengembalikan dalam token lengkap
Aksi kemungkinan lainnya adalah menghilangkan karakter agar lebih sederhana– E.g. karakter pada komentar