TEKNIK KOMPILASI ANALISIS LEKSIKAL OLEH : NUR FAHMI LUKMI SEMESTER V COPYRIGHT@2011 PERTEMUAN 3
Analisis Leksikal Tugas utama penganalisis leksikal adalah memecah tiap baris source menjadi token-token. Pekerjaan yang dilaksanakan antara lain: Membung komentar Menyeragamkan huruf kapital menjadi huruf kecil atau sebaliknya. Membuang white space. Mengenterpretasi compiler directive Berkomunikasi dengan simbol table (identifier-type-size) Membuang listing. SEMESTER V COPYRIGHT@2011 PERTEMUAN 3
Token dan Lexemes Token adalah kumpulan lexemes-leksemes. Token menyatakan suatu kelompok, misalnya kelompok identifier (id) atau kelompok relasi (relop). Sedangkan Lexemes menjelaskan anggota-anggota dari token. SEMESTER V COPYRIGHT@2011 PERTEMUAN 3
Contoh if(distance>=rate*(end_time-start_time)) distance=maxdist; Diberikan perintah berikut: if(distance>=rate*(end_time-start_time)) distance=maxdist; Dipisahkan menjadi token dan lexemes sebagai berikut: Parser menerima hasil lexical analizer dalam bentuk: if (id relop id * (id-id)) id = id; SEMESTER V COPYRIGHT@2011 PERTEMUAN 3
Finite-State Automata (FSA) Analisis leksikal lebih mudah diimplimentasikan pada Finite State Machine atau Finite State Automata. Materi ini mempelajari sehimpunan state (anggota himpunannyaterbatas/finite) beserta dengan aturan-aturan perpindahan dari satu state ke state lainnya. Sehimpunan state tersebut menyatakan satu proses dan aturan-aturannya menyatakan kemungkinan-kemungkinan yang terjadi dalam menyelesaikan proses tersebut. SEMESTER V COPYRIGHT@2011 PERTEMUAN 3
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. SEMESTER V COPYRIGHT@2011 PERTEMUAN 3
Lanjutan Kemungkinan yang terjadi dari contoh diatas digambarkan dalam state diagram berikut ini: SEMESTER V COPYRIGHT@2011 PERTEMUAN 3
Lanjutan Diagram diatas dapat digambarkan menggunakan tabel (State table), sebagai berikut: SEMESTER V COPYRIGHT@2011 PERTEMUAN 3
Kriteria diterima dalam FSA (Acceptance) 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. SEMESTER V COPYRIGHT@2011 PERTEMUAN 3
Contoh State daigram untuk pembentukan token didefinisikan seperti diagram berikut: SEMESTER V COPYRIGHT@2011 PERTEMUAN 3
1 0 0 0 0 0 State table dari diagram state diatas sebagai berikut: Bila ada masukan string dan disusun dalam directed graph, maka dapat segera diketahui string tersebut diterima atau tidak. Input directed graph 1 0 1 1 0 0 101100 A A B C B C D 1 0 0 0 0 0 Jadi, String 101100 diterima, sedangkan 100000 tidak diterima. SEMESTER V COPYRIGHT@2011 PERTEMUAN 3
SEKIAN….. SEMESTER V COPYRIGHT@2011 PERTEMUAN 3