Analisis leksikal Scanner Istiqomah S Kom Teknik Kompilasi
![Analisis leksikal (Scanner) Istiqomah, S. Kom. [Teknik Kompilasi UNIKOM 2013] Analisis leksikal (Scanner) Istiqomah, S. Kom. [Teknik Kompilasi UNIKOM 2013]](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-1.jpg)
![Proses Kompilasi Object Code Proses Kompilasi Object Code](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-2.jpg)
![Definisi q Bagian dari proses compiler yang berfungsi untuk mengubah deretan karakter-karakter menjadi deretan Definisi q Bagian dari proses compiler yang berfungsi untuk mengubah deretan karakter-karakter menjadi deretan](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-3.jpg)
![Tugas Scanner q Melakukan pembacaan kode sumber dengan menurut karakter demi karakter q Mengenali Tugas Scanner q Melakukan pembacaan kode sumber dengan menurut karakter demi karakter q Mengenali](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-4.jpg)
![Alat Bantu q Scanner bekerja berdasarkan mesin FSA yang ada pada bahasa regular q Alat Bantu q Scanner bekerja berdasarkan mesin FSA yang ada pada bahasa regular q](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-5.jpg)
![Besaran Leksik/Token q Besaran leksikal/token meliputi : 1. Identifier 2. Nilai Konstanta 3. Operator Besaran Leksik/Token q Besaran leksikal/token meliputi : 1. Identifier 2. Nilai Konstanta 3. Operator](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-6.jpg)
![1. Identifier q Token yang bisa berupa keyword atau nama ü keywords adalah kata 1. Identifier q Token yang bisa berupa keyword atau nama ü keywords adalah kata](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-7.jpg)
![1. Identifier (lanjutan) q Contoh : VAR nomor : INTEGER; suhu : REAL; VAR, 1. Identifier (lanjutan) q Contoh : VAR nomor : INTEGER; suhu : REAL; VAR,](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-8.jpg)
![2. Nilai Konstanta q Adalah suatu konstanta yang terdapat pada program q Berupa konstanta 2. Nilai Konstanta q Adalah suatu konstanta yang terdapat pada program q Berupa konstanta](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-9.jpg)
![3. Operator dan Delimeter q Operator misalnya operator matematika (+, -, *, /) dan 3. Operator dan Delimeter q Operator misalnya operator matematika (+, -, *, /) dan](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-10.jpg)
![Contoh q Ada urutan karakter yang disebut dengan statement : fahrenheit : = 32 Contoh q Ada urutan karakter yang disebut dengan statement : fahrenheit : = 32](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-11.jpg)
![Implementasi Scanner q Scanner biasanya diimplementasikan sebagai sebuah prosedur yang dipanggil oleh Parser. q Implementasi Scanner q Scanner biasanya diimplementasikan sebagai sebuah prosedur yang dipanggil oleh Parser. q](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-12.jpg)
![Implementasi Scan Sederhana Dimana : File. Input: text, Kar: character Pada scanner kita akan Implementasi Scan Sederhana Dimana : File. Input: text, Kar: character Pada scanner kita akan](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-13.jpg)
![Case kar OF ‘<‘: begin Get. Char; Case Kar OF ‘=‘: begin token: =t_LE; Case kar OF ‘<‘: begin Get. Char; Case Kar OF ‘=‘: begin token: =t_LE;](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-14.jpg)
![‘{‘: begin Repeat get. Char; { maju sampai ketemu penutup komentar} until Kar= ‘ ‘{‘: begin Repeat get. Char; { maju sampai ketemu penutup komentar} until Kar= ‘](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-15.jpg)
![Implementasi Scan Sederhana Dari procedure scan didapatkan himpunan token : q Token={ <, >, Implementasi Scan Sederhana Dari procedure scan didapatkan himpunan token : q Token={ <, >,](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-16.jpg)
![Latihan: Tentukan Token Leksikal yang terbentuk dari potongan program berikut: BEGIN ……………. Luas. Segitiga Latihan: Tentukan Token Leksikal yang terbentuk dari potongan program berikut: BEGIN ……………. Luas. Segitiga](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-17.jpg)
![Latihan: Buatlah prosedur scan sederhana yang mampu membaca bilangan bulat dan identifier : q Latihan: Buatlah prosedur scan sederhana yang mampu membaca bilangan bulat dan identifier : q](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-18.jpg)
- Slides: 18
![Analisis leksikal Scanner Istiqomah S Kom Teknik Kompilasi UNIKOM 2013 Analisis leksikal (Scanner) Istiqomah, S. Kom. [Teknik Kompilasi UNIKOM 2013]](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-1.jpg)
Analisis leksikal (Scanner) Istiqomah, S. Kom. [Teknik Kompilasi UNIKOM 2013]
![Proses Kompilasi Object Code Proses Kompilasi Object Code](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-2.jpg)
Proses Kompilasi Object Code
![Definisi q Bagian dari proses compiler yang berfungsi untuk mengubah deretan karakterkarakter menjadi deretan Definisi q Bagian dari proses compiler yang berfungsi untuk mengubah deretan karakter-karakter menjadi deretan](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-3.jpg)
Definisi q Bagian dari proses compiler yang berfungsi untuk mengubah deretan karakter-karakter menjadi deretan token-token. q Misalnya : Imagine recognizing ‘while’ as ‘w’ ‘h’ ‘i’ ‘l’ ‘e’
![Tugas Scanner q Melakukan pembacaan kode sumber dengan menurut karakter demi karakter q Mengenali Tugas Scanner q Melakukan pembacaan kode sumber dengan menurut karakter demi karakter q Mengenali](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-4.jpg)
Tugas Scanner q Melakukan pembacaan kode sumber dengan menurut karakter demi karakter q Mengenali besaran leksik/token q Mentransformasi menjadi sebuah token dan menentukan jenis token nya q Mengirimkan token q Membuang / mengabaikan blank dan komentar dalam program q Menangani kesalahan q Menangani tabel simbol
![Alat Bantu q Scanner bekerja berdasarkan mesin FSA yang ada pada bahasa regular q Alat Bantu q Scanner bekerja berdasarkan mesin FSA yang ada pada bahasa regular q](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-5.jpg)
Alat Bantu q Scanner bekerja berdasarkan mesin FSA yang ada pada bahasa regular q Untuk membantu mengkonstruksi scanner dapat menggunakan diagram keadaan
![Besaran LeksikToken q Besaran leksikaltoken meliputi 1 Identifier 2 Nilai Konstanta 3 Operator Besaran Leksik/Token q Besaran leksikal/token meliputi : 1. Identifier 2. Nilai Konstanta 3. Operator](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-6.jpg)
Besaran Leksik/Token q Besaran leksikal/token meliputi : 1. Identifier 2. Nilai Konstanta 3. Operator dan Delimiter
![1 Identifier q Token yang bisa berupa keyword atau nama ü keywords adalah kata 1. Identifier q Token yang bisa berupa keyword atau nama ü keywords adalah kata](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-7.jpg)
1. Identifier q 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 q Contoh VAR nomor INTEGER suhu REAL VAR 1. Identifier (lanjutan) q Contoh : VAR nomor : INTEGER; suhu : REAL; VAR,](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-8.jpg)
1. Identifier (lanjutan) q 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 q Adalah suatu konstanta yang terdapat pada program q Berupa konstanta 2. Nilai Konstanta q Adalah suatu konstanta yang terdapat pada program q Berupa konstanta](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-9.jpg)
2. Nilai Konstanta q Adalah suatu konstanta yang terdapat pada program q Berupa konstanta integer, real, Boolean, character, string dan sebagainya q Misal : N : = R + 5 * 10 Kata : = kata 1 + ‘makan’ A : = 0. 333 Selesai : = True Maka 5, 10, ‘makan’, 0. 333, TRUE termasuk token nilai konstanta dalam program tersebut
![3 Operator dan Delimeter q Operator misalnya operator matematika dan 3. Operator dan Delimeter q Operator misalnya operator matematika (+, -, *, /) dan](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-10.jpg)
3. Operator dan Delimeter q Operator misalnya operator matematika (+, -, *, /) dan operator logika (<, =, >) q Delimeter berguna sebagai pemisah/pembatas, misalnya ( ), ; , : , white-space (spasi yang diabaikan di dalam program), enter, end of file.
![Contoh q Ada urutan karakter yang disebut dengan statement fahrenheit 32 Contoh q Ada urutan karakter yang disebut dengan statement : fahrenheit : = 32](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-11.jpg)
Contoh q Ada urutan karakter yang disebut dengan statement : fahrenheit : = 32 + celcius * 1, 8, q Token yang terbentuk : identifier Fahrenheit operator : = integer 32 operator penjumlahan + identifier celcius operator perkalian * real 1, 8
![Implementasi Scanner q Scanner biasanya diimplementasikan sebagai sebuah prosedur yang dipanggil oleh Parser q Implementasi Scanner q Scanner biasanya diimplementasikan sebagai sebuah prosedur yang dipanggil oleh Parser. q](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-12.jpg)
Implementasi Scanner q Scanner biasanya diimplementasikan sebagai sebuah prosedur yang dipanggil oleh Parser. q Prosedur Scan sederhana: q Didefinisikan dulu Procedure Get. Char untuk mengambil sebuah karakter dari file input. Procedure Get. Char; begin Read (File. Input, Kar); end;
![Implementasi Scan Sederhana Dimana File Input text Kar character Pada scanner kita akan Implementasi Scan Sederhana Dimana : File. Input: text, Kar: character Pada scanner kita akan](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-13.jpg)
Implementasi Scan Sederhana Dimana : File. Input: text, Kar: character Pada scanner kita akan maju satu-satu per karakter untuk mendapatkan token. Selanjutnya kita akan buat Procedure Scan Begin While Kar=‘ ‘ do Get. Char {selama ketemu spasi maju terus} repeat
![Case kar OF begin Get Char Case Kar OF begin token tLE Case kar OF ‘<‘: begin Get. Char; Case Kar OF ‘=‘: begin token: =t_LE;](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-14.jpg)
Case kar OF ‘<‘: begin Get. Char; 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 Get. Char; If Kar=‘=‘ then begin token: =t_GE; exit; end; Else begin token: =t_G; exit; end; End;
![begin Repeat get Char maju sampai ketemu penutup komentar until Kar ‘{‘: begin Repeat get. Char; { maju sampai ketemu penutup komentar} until Kar= ‘](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-15.jpg)
‘{‘: begin Repeat get. Char; { maju sampai ketemu penutup komentar} until Kar= ‘ }’ Get. Char; {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 q Token Implementasi Scan Sederhana Dari procedure scan didapatkan himpunan token : q Token={ <, >,](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-16.jpg)
Implementasi Scan Sederhana Dari procedure scan didapatkan himpunan token : q Token={ <, >, =, <=, >=, <} q Atau dibaca sebagai token-token: q 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 Luas Segitiga Latihan: Tentukan Token Leksikal yang terbentuk dari potongan program berikut: BEGIN ……………. Luas. Segitiga](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-17.jpg)
Latihan: Tentukan Token Leksikal yang terbentuk dari potongan program berikut: BEGIN ……………. Luas. Segitiga : = alas*tinggi*0. 5; Readln; END.
![Latihan Buatlah prosedur scan sederhana yang mampu membaca bilangan bulat dan identifier q Latihan: Buatlah prosedur scan sederhana yang mampu membaca bilangan bulat dan identifier : q](https://slidetodoc.com/presentation_image_h/d77850204eb9f7e6c05ab86087324e0b/image-18.jpg)
Latihan: Buatlah prosedur scan sederhana yang mampu membaca bilangan bulat dan identifier : q Bilangan bulat : diawali digit 0. . 9, bisa diikuti digit q Identifier : diawali A. . Z, a. . z, bisa diikuti A. . Z, a. . z, 0. . 9.
Analisis leksikal dalam teknik kompilasi
Kom heer jezus kom
Teknik optimasi pada teknik kompilasi
Tabel informasi pada teknik kompilasi
Pembangkit kode antara
3 14 phi
Contoh analisis semantik teknik kompilasi
Istiqomah yastaqimu artinya
Fungsi retina
Contoh program teknik kompilasi
Notasi bnf
Kode antara teknik kompilasi
Pengantar teknik kompilasi
Notasi postfix teknik kompilasi
Semantic notation
Translator teknik kompilasi
Diagram sintaks teknik kompilasi
Ken scanner
Besaran leksikal