Top Banner
ANALISIS LEKSIKAL
12

Analisis Leksikal

Dec 21, 2015

Download

Documents

teknik kompilasi
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Analisis Leksikal

ANALISIS LEKSIKAL

Page 2: Analisis Leksikal

Pembahasan

Letak analisis leksikal pada struktur kompiler Pengenalan analisis leksikal Scanning berdasarkan MSH Tugas analisis leksikal

Page 3: Analisis Leksikal

Struktur Kompiler

Page 4: Analisis Leksikal

Analisis Leksikal – Apa itu?[1]

Masukan bagi sebuah compiler/interpreter adalahprogram sumber yang strukturnya berupa deretandari karakter-karakter– or rather unstructured

Pemrosesan individual karakter yangketidakefisiennya sangat tinggi» Imagine recognizing ‘while’ as ‘w’ ‘h’ ‘i’ ‘l’ ‘e’

Oleh karenanya, hal pertama yang kita perhatikanadalah bentuk kode sumbernya

Page 5: Analisis Leksikal

Analisis Leksikal – Apa itu?[2]

A Lexical Analyzer (scanner) mengubah deretankarakter-karakter menjadi deretan token-token– i.e. a scanner “tokenizes” the input

Sebuah token (lexeme or syntactic unit) adalahkomponen dasar leksikal dari program

Page 6: Analisis Leksikal

Analisis Leksikal–Token[3]

Token adalah level entitas yang paling rendah dalamdiagram 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.)

Page 7: Analisis Leksikal

Analisis Leksikal–Tokens[4]

Consider a simple program and itstokens:

Page 8: Analisis Leksikal

Fungsi Scanner

Melakukan pembacaan kode sumber dengan merunutkarakter 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)

Page 9: Analisis Leksikal

Scanning berdasarkan MSH

Hampir sebagian besar teknik yang digunakan untukmembangun scanners menggunakan mesin statahingga (MSHs)

MSHs dapat dengan mudah digunakan untukmengenali kontruksi bahasa (i.e. tokens) yangdigambarkan dengan bahasa regular

Page 10: Analisis Leksikal

Membangun Scanner

Bagaimana scanner berinteraksi dengan parser?– parser akan menjadi bagian selanjutnya dari

kompilasi Perhatikan gambar berikut:

Page 11: Analisis Leksikal

Aksi Scanner [1]

Karena scanner mengubah dari stata ke stata, makaharus dilakukan sesuatu dengan karakter-karaktertersebut untuk mengenali sesuai denganpembentukan token yang akan dikembalikan padatahap parser

Dalam beberapa kasus, harus menambahkancharacter seperti terlihat pada pembentukan tokendan memanfaatkannya (menjadikan karaktermasukan berikutnya menjadi kelihatan)– E.g. when scanning characters in an identifier

Page 12: Analisis Leksikal

Aksi Scanner [2]

Dalam kasus lainnya harus menjaga characterdan mengembalikan dalam token lengkap

Aksi kemungkinan lainnya adalahmenghilangkan karakter agar lebih sederhana– E.g. karakter pada komentar