analisis leksikal - p4

19
4

Upload: ahmad-haidaroh

Post on 13-Apr-2017

372 views

Category:

Education


6 download

TRANSCRIPT

Page 1: Analisis Leksikal - P4

4

Page 2: Analisis Leksikal - P4

ANALISIS LEKSIKAL

Page 3: Analisis Leksikal - P4

Pembahasan

Analisis leksikal adalah sebuah proses yang mendahului parsing sebuah rangkaian karakter.

Ia menerima masukan serangkaian karakter (seperti dalam dokumen plain-text atau source code) dan menghasilkan deretan simbol yang masing-masing dinamakan token;

Proses parsing akan lebih mudah dilakukan bila inputnya sudah berupa token

Page 4: Analisis Leksikal - P4

Pembahasan

Dalam kaitan ini aliran karakter yang membentuk program sumber dibaca dari kiri ke kanan dan dikelompokkan dalam apa yang disebut token yaitu barisan dari karakter yang dalam suatu kesatuan mempunyai suatu arti tersendiri.

Analisis ini melakukan penerjemahan masukan menjadi bentuk yang lebih berguna untuk tahap-tahap kompilasi berikutnya.

Page 5: Analisis Leksikal - P4

Pembahasan

Analisis Leksikal merupakan antarmuka antara kode program sumber dan analisis sintaktik (parser). Scanner melakukan pemeriksaan karakter per karakter pada teks masukan, memecah sumber program menjadi bagian-bagian disebut Token.

Analisis Leksikal mengerjakan pengelompokkan urutan-urutan karakter ke dalam komponen pokok: identifier, delimeter, simbol-simbol operator, angka, keyword, noise word, blank, komentar, dan seterusnya menghasilkan suatu Token Leksikal yang akan digunakan pada Analisis Sintaktik

Page 6: Analisis Leksikal - P4

TUGAS ANALISIS LEKSIKAL

Konversi Program Sumber Menjadi Barisan TokenMengubah program sumber yang dipandang sebagai barisan byte/karakter menjadi token.

Menangani Kerumitan Sistem Masukkan/KeluaranKarena analisis leksikal biasanya berhubungan langsung dengan kode sumber yang diwadahi file, maka analisis leksikal juga bertindak sebagai benteng untuk komponen-komponen lain di kompilator dalam mengatasi keanehan-keanehan sistem masukkan/keluaran sistem operasi dan sistem komputer.

Page 7: Analisis Leksikal - P4

Pembahasan

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

Page 8: Analisis Leksikal - P4

Struktur Kompiler

Page 9: Analisis Leksikal - P4

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

Page 10: Analisis Leksikal - P4

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

Page 11: Analisis Leksikal - P4

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.)

Page 12: Analisis Leksikal - P4

Analisis Leksikal–Tokens[4]

Consider a simple program and its tokens:

Page 13: Analisis Leksikal - P4

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)

Page 14: Analisis Leksikal - P4

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 regularMSH/FSM (Finite State Machine) adalah sebuah varians automata hingga.MSH sering juga disebut sebagai automata hingga beroutput atau mesin sekuensial.

Page 15: Analisis Leksikal - P4

Membangun Scanner Bagaimana scanner berinteraksi dengan

parser?– parser akan menjadi bagian selanjutnya dari

kompilasi Perhatikan gambar berikut:

Page 16: Analisis Leksikal - P4

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

Page 17: Analisis Leksikal - P4

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

Page 18: Analisis Leksikal - P4

FINISH

Page 19: Analisis Leksikal - P4

Leksikon

Dalam linguistik, leksikon adalah koleksi leksem pada suatu bahasa. Istilah ini berasal dari bahasa Yunani "λεξικόν" 'lexikόn' atau "λεξικός" 'lexikόs' yang kurang lebih bermakna 'perihal kata'. Kajian terhadap leksikon mencakup apa yang dimaksud dengan kata, strukturisasi kosakata, penggunaan dan penyimpanan kata, pembelajaran kata, sejarah dan evolusi kata (etimologi), hubungan antarkata, serta proses pembentukan kata pada suatu bahasa. Dalam penggunaan sehari-hari, leksikon dianggap sebagai sinonim kamus atau kosakataBACK