12
ANALISIS LEKSIKAL

ANALISIS LEKSIKAL - Gunadarma

  • Upload
    others

  • View
    19

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ANALISIS LEKSIKAL - Gunadarma

ANALISIS LEKSIKAL

Page 2: ANALISIS LEKSIKAL - Gunadarma

Pembahasan

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

Page 3: ANALISIS LEKSIKAL - Gunadarma

Struktur Kompiler

Page 4: ANALISIS LEKSIKAL - Gunadarma

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 - Gunadarma

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 - Gunadarma

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 - Gunadarma

Analisis Leksikal–Tokens[4]

Consider a simple program and itstokens:

Page 8: ANALISIS LEKSIKAL - Gunadarma

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 - Gunadarma

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 - Gunadarma

Membangun Scanner

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

kompilasi Perhatikan gambar berikut:

Page 11: ANALISIS LEKSIKAL - Gunadarma

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 - Gunadarma

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