Analisis leksikal (Scanner)

Slides:



Advertisements
Presentasi serupa
PROCEDURE Temu IX BANGHER.
Advertisements

PROCEDURE  PROCEDURE   Prosedur diawali dengan kata cadangan Procedure di dalam bagian deklarasi prosedur. Prosedur dipanggil dan digunakan di dalam blok.
Dasar Komputer & Pemrog 2 A minggu 4
Pengenalan Bahasa Pemrograman Pascal
VARIABEL DAN OPERATOR.
Pengantar Algoritma.
Variabel dan Ekspresi Struktur Percabangan dan Struktur Perulangan
Algoritma Dasar Dalam membuat suatu program komputer, menyusun algoritma adalah langkah pertama yang harus dilakukan Dalam membuat algoritma dapat digunakan.
Flowchart dan Pseudocode
KONSEP dan NOTASI BAHASA
Logika & Algoritma -- Pertemuan II: Variabel dan Operator Logika & Algoritma --
Dasar Komputer & Pemrog. 2A
Pemprograman Terstruktur 1
Lexical Analyzer (Scanner)
Identifier, Konstanta, Variabel & Tipe data Dasar-Dasar Pemrograman Marsel Willem Aipassa, S. Kom.
T I P E D A T A.
Algoritma (Struktur, Tipe Data, Input/Output)
Notasi Algoritma.
Pemrograman Visual (Borland Delphi 7.0)
ANALISIS LEKSIKAL.
Cara Penanganan Kesalahan
KOMENTAR Komentar dipakai untuk memberikan penjelasan atau keterangan di dalam baris program. Teks yang ditulis sebagai komentar tidak akan dikompilasi.
MATERI PERKULIAHAN TEKNIK KOMPILASI
Materi Kuliah 1. Pertemuan ke : 1 Pengenalan Komputer dan Pemrograman
While … do … Repeat … until … For … to … do …
ALGORITMA PEMROGRAMAN 2A
Tipe Data By Serdiwansyah N. A..
Struktur Program Pascal
Cara Penanganan Kesalahan
Dasar-Dasar Pemrograman
Algoritma dan Pemrograman 2A
BAB 2 Elemen Dasar.
Variabel dan Ekspresi Struktur Percabangan dan Struktur Perulangan
Dasar-Dasar Pemrograman
BAB 3 EKSPRESI BOOLEAN.
Konsep Dasar Bahasa Pascal
LINGKUNGAN TURBO PASCAL
Pengantar Teknik Kompilasi
STRUKTUR KONTROL Pertemuan Ke-7.
PERCABANGAN Siti Mukaromah, S.Kom.
Pseudocode – Tipe Data, Variabel, dan Operator
Algoritma dan Pemrograman
PEMROGRAMAN PASCAL ELEMEN PEMROGRAMAN PASCAL.
ANALISIS LEKSIKAL.
ANALISIS LEKSIKAL (Scanner)
Analisis leksikal ( SCANNER )
Dasar-Dasar Pemrograman
Cara Penanganan Kesalahan
Struktur Dasar Algoritma dan Runtunan
PERCABANGAN DAN PERULANGAN
Tipe data & Variabel 1. Aturan Leksikal. 2. Operator. 3. Statement
Tipe data & Variabel 1. Aturan Leksikal. 2. Operator. 3. Statement
ANALISIS LEKSIKAL.
CARA PENANGAN KESALAHAN
MATERI PERKULIAHAN TEKNIK KOMPILASI
Pemrogram 1 Agus Darmawan, S.kom.
Dasar Pemrograman PASCAL II
PERKEMBANGAN PASCAL Pascal adalah bahasa tingkat tinggi ( high level language) yang orientasinya pada segala tujuan Nama pascal diambil sebagai penghargaan.
STRUKTUR DASAR ALGORITMA
Dasar-Dasar Pemrograman
KOMENTAR Komentar dipakai untuk memberikan penjelasan atau keterangan di dalam baris program. Teks yang ditulis sebagai komentar tidak akan dikompilasi.
Ilustrasi Proses Kompilasi
Indentifier, Keywords, Variable, Tipe Data dan Operator
CARA PENANGAN KESALAHAN
Cara Penanganan Kesalahan
ANALISIS LEKSIKAL.
KOMENTAR Komentar dipakai untuk memberikan penjelasan atau keterangan di dalam baris program. Teks yang ditulis sebagai komentar tidak akan dikompilasi.
SMK BINA INSAN Pemograman Dasar Operasi Aritmatika Dan Logika Yobi Saputra 22.
ANALISIS LEKSIKAL.
BAB 7 EKSPRESI BOOLEAN.
Transcript presentasi:

Analisis leksikal (Scanner) Istiqomah, S.Kom. [Teknik Kompilasi UNIKOM 2013]

Proses Kompilasi Object Code

Definisi Bagian dari proses compiler yang berfungsi untuk mengubah deretan karakter-karakter menjadi deretan token-token. Misalnya : Imagine recognizing ‘while’ as ‘w’ ‘h’ ‘i’ ‘l’ ‘e’

Tugas Scanner Melakukan pembacaan kode sumber dengan menurut karakter demi karakter Mengenali besaran leksik/token Mentransformasi menjadi sebuah token dan menentukan jenis token nya Mengirimkan token Membuang / mengabaikan blank dan komentar dalam program Menangani kesalahan Menangani tabel simbol

Alat Bantu Scanner bekerja berdasarkan mesin FSA yang ada pada bahasa regular Untuk membantu mengkonstruksi scanner dapat menggunakan diagram keadaan

Besaran Leksik/Token Besaran leksikal/token meliputi : Identifier Nilai Konstanta Operator dan Delimiter

1. Identifier Token yang bisa berupa keyword atau nama keywords adalah kata kunci yang sudah didefinisikan oleh suatu bahasa seperti BEGIN, END, IF, ELSE dalam Pascal. Nama dideklarasikan sendiri oleh pemakai,seperti nama sebuah variabel.

1. Identifier (lanjutan) Contoh : VAR nomor : INTEGER; suhu : REAL; VAR, INTEGER dan REAL termasuk token identifier berupa keyword. Nomor dan suhu termasuk token identifier berupa nama

2. Nilai Konstanta Adalah suatu konstanta yang terdapat pada program Berupa konstanta integer, real, Boolean, character, string dan sebagainya Misal : N : = R + 5 * 10 Kata : = kata1 + ‘makan’ A : = 0.333 Selesai : = True Maka 5, 10, ‘makan’, 0.333, TRUE termasuk token nilai konstanta dalam program tersebut

3. Operator dan Delimeter Operator misalnya operator matematika (+, -, *, /) dan operator logika (<, =, >) Delimeter berguna sebagai pemisah/pembatas, misalnya ( ), ;, :, white-space (spasi yang diabaikan di dalam program), enter, end of file.

Contoh Ada urutan karakter yang disebut dengan statement : fahrenheit := 32 + celcius * 1,8, Token yang terbentuk : identifier  Fahrenheit operator  := integer  32 operator penjumlahan  + identifier  celcius operator perkalian  * real  1,8

Implementasi Scanner Scanner biasanya diimplementasikan sebagai sebuah prosedur yang dipanggil oleh Parser. Prosedur Scan sederhana: Didefinisikan dulu Procedure GetChar untuk mengambil sebuah karakter dari file input. Procedure GetChar; begin Read (FileInput, Kar); end;

Implementasi Scan Sederhana Dimana : FileInput: text, Kar: character Pada scanner kita akan maju satu-satu per karakter untuk mendapatkan token. Selanjutnya kita akan buat Procedure Scan. Procedure Scan Begin While Kar=‘ ‘ do GetChar {selama ketemu spasi maju terus} repeat

Case kar OF ‘<‘: begin GetChar; Case Kar OF ‘=‘: begin token:=t_LE; exit end; ‘>’: begin token:=t_NE; exit end; Else Begin token:=t_L; exit; end; ‘=‘: begin token:=t_E exit;end; ‘>’: begin If Kar=‘=‘ then begin token:=t_GE;exit;end; begin token:=t_G;exit;end; End;

‘{‘: begin Repeat getChar; { maju sampai ketemu penutup komentar} until Kar= ‘ }’ GetChar; {lanjutkan maju, tanpa memperoleh token} end; EOF: exit; {akhir file} Until false {sampai ketemu sebuah token atau akhir file} End;

Implementasi Scan Sederhana Dari procedure scan didapatkan himpunan token : Token={ <,>,=,<=,>=,<} Atau dibaca sebagai token-token: t_L (less), t_G(greater),t_E(equal),t_LE,t_GE,t_NE(not equal)

Latihan: Tentukan Token Leksikal yang terbentuk dari potongan program berikut: BEGIN ……………………….. ………………………. LuasSegitiga := alas*tinggi*0.5; Readln; END.

Latihan: Buatlah prosedur scan sederhana yang mampu membaca bilangan bulat dan identifier : Bilangan bulat : diawali digit 0..9, bisa diikuti digit Identifier : diawali A..Z, a..z, bisa diikuti A..Z, a..z, 0..9.