SlideShare a Scribd company logo
1 of 24
1
Assalamu’alaikum,
Selamat paaaaaaaagi
2
Aminah Tri Rahayu ▪
Qoni Annur Arzaki ▪
Wahyudi ▪
M. Abdul Honi ▪
Alvin Aperma ▪
TEKNIK
KOMPILASI
3
Apa itu Analisis
Leksikal ?
4
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.
5
Analisis leksikal membuat pekerjaan membuat sebuah parser
jadi lebih mudah; ketimbang membangun nama setiap fungsi
dan variabel dari karakter-karakter yang menyusunnya, dengan
analisis leksikal parser cukup hanya berurusan dengan
sekumpulan token dan nilai sintaksis masing-masing. Terlepas
dari efisiensi pemrograman yang dapat dicapai dengan
penggunaannya, proses kerja analisis leksikal yang membaca
lebih dari sekali setiap karakter dari input yang diberikan
menjadikan penganalisa leksikal sebagai sub-sistem yang
paling intensif melakukan komputasi, terutama bila digunakan
dalam sebuah kompilator.
6
Tujuan atau perananya :
Analisis Leksikal merupakan
komponen kompilasi independen yang
berkomunikasi dengan parser lewat
antarmuka yang terdefinisi bagus
dan sederhana sehingga
pemeliharaan analisis leksikal
menjadi lebih mudah dimana
perubahan- perubahan terhadap
analisis leksikal tidak berdampak
pada pengubahan kompilator secara
keseluruhan.
Agar dapat memperoleh fitur ini, 7
Apa aja sih tugas-tugas Analisis
leksikal ?
Konversi Program Sumber Menjadi Barisan Token
Mengubah program sumber yang dipandang sebagai
barisan byte/karakter menjadi token
Menangani Kerumitan Sistem Masukkan/Keluaran
Karena 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. 8
Tugas-tugas tambahan Analisis
Leksikal
Penghilangan komentar dan whitespace
(tab,spasi,karakter lainnya)
Tindakan housekeeping dilakukan scanner sehingga
mengisolasikan dari parser dan komponen-komponen
kompilator lain.
Peran ini menyederhanakan perancangan parser (dan
grammar bahasa pemrograman).
Scanner juga mencatat nomor baris saat itu sehingga
penanganan kesalahan yang cerdas dapat mengirim
pesan kesalahan dengan lebih akurat.
9
Konversi literal/konstanta numerik menjadi
tipe data tertentu
Analisis leksikal dapat mengirim token, dan
nilainya. Nilai ini biasa disebut atribut.
Namun demikian, bila analisis leksikal
ditambahin dengan tugas-tugas tambahan
yang terlalu banyak juga akan menjadi tidak
baik. Karena itu membatasi analisis leksikal
hanya untuk melakukan tugas pengenalan
pola token (ditambah membuang komentar)
adalah mempermudah pemeliharaan.
10
Tahap Pelaksanaan Analisis Leksikal
Tahap single one pass
Terjadi interaksi antara scanner dan parser. Sacnner
dipanggil saat parser memerlukan token berikutnya.
Pendekatan ini lebih baik karena bentuk internal
program sumber yang lengkap tidak perlu dibangun
dan disimpan di memori sebelum parsing dimulai.
11
Tahap separate pass
Scanner memproses secara terpisah, dilakukan sebelum parsing.
Hasil scanner disimpan dalam file. Dari file tersebut, parsing
melakukan kegiatannya.
Scanner mengirim nilai-nilai integer yang mempresentasikan
bentuk internal token, bukan nilai-nilai string.
Keunggulan cara ini adalah ukurannya kecil dan tetap. Parser
sangat lebih efisien bekerja dengan nilai integer yang
mempresentasikan simbol daripada string nyata dengan panjang
variabel.
12
Implementasi Analisis Leksikal
1. Pengenalan Token
- Scanner harus dapat mengenali token
- Terlebih dahulu dideskripsikan
token-token yang harus dikenali
13
2. Pendeskripsian Token
- Menggunakan reguler grammar.
Menspesifikasikan aturan-aturan
pembangkit token-token dengan
kelemahan reguler grammar
menspesifikasikan token berbentuk
pembangkit, sedang scanner perlu bentuk
pengenalan.
- Menggunakan ekspresi grammar.
Menspesifikasikan token-token dengan
ekspresi reguler.
- Model matematis yang dapat
memodelkan pengenalan adalah finite-
state acceptor (FSA) atau finite automata.
14
3. Implementasi Analisis Leksikal sebagai Finite
Automata
Pada pemodelan analisis leksikal sebagai
pengenal yang menerapkan finite automata,
analisis leksikal tidak cuma hanya melakukan
mengatakan YA atau TIDAK. Dengan
demikian selain pengenal, maka analisis
leksikal juga melakukan aksi-aksi tambahan
yang diasosiasikan dengan string yangsedang
diolah.
Analisis leksikal dapat dibangun dengan
menumpangkan pada konsep pengenal yang
berupa finite automata dengan cara
menspesifikasikan rutin-rutin (aksi-aksi)
tertentu terhadap string yang sedang dikenali.
15
4. Penanganan Kesalahan di
Analisis Leksikal
Hanya sedikit kesalahan yang
diidentifikasi di analisis leksikal
secara mandiri karena analisis
leksikal benar-benar merupakan
pandangan sangat lokal terhadap
program sumber.
16
Bila ditemui situasi dimana analisis leksikal tidak
mampu melanjutkan proses karena tidak ada pola token
yang cocok, maka terdapat beragam alternatif pemulihan.
yaitu:
- "Panic mode" dengan menghapus karakter-karakter
berikutnya sampai analisis leksikal menemukan token
yang terdefinisi bagus
- Menyisipkan karakter yang hilang
- Mengganti karakter yang salah dengan karakter yang
benar
- Mentransposisikan 2 karakter yang bersebelahan.
Salah satu cara untuk menemukan kesalahan-kesalahan
di program adalah menghitung jumlah transformasi
kesalahan minimum yang diperlukan untuk
mentransformasikan program yang salah menjadi
program yag secara sintaks benar.
17
18
19
20
21
22
Any questions?
23
Sekian dan terimakasih
Wassalamu’alaikum
24

More Related Content

What's hot

Analisis Semantik - P 6 Teknik Kompilasi
Analisis Semantik - P 6 Teknik KompilasiAnalisis Semantik - P 6 Teknik Kompilasi
Analisis Semantik - P 6 Teknik Kompilasiahmad haidaroh
 
INTERAKSI MANUSIA DAN KOMPUTER
INTERAKSI MANUSIA DAN KOMPUTERINTERAKSI MANUSIA DAN KOMPUTER
INTERAKSI MANUSIA DAN KOMPUTERAndhi Pratama
 
Ragam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan KomputerRagam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan KomputerAuliaa Oktarianii
 
IMK - Strategi Banyak Window
IMK - Strategi Banyak WindowIMK - Strategi Banyak Window
IMK - Strategi Banyak Windownadiapreviani
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomataBanta Cut
 
Kriptografi - Serangan Terhadap Kriptografi
Kriptografi - Serangan Terhadap KriptografiKriptografi - Serangan Terhadap Kriptografi
Kriptografi - Serangan Terhadap KriptografiKuliahKita
 
Testing&implementasi 3
Testing&implementasi 3Testing&implementasi 3
Testing&implementasi 3aiiniR
 
Modul 4 representasi pengetahuan
Modul 4   representasi pengetahuanModul 4   representasi pengetahuan
Modul 4 representasi pengetahuanahmad haidaroh
 
technik kompilasi
technik kompilasitechnik kompilasi
technik kompilasimastnie
 
Intermediate code kode antara
Intermediate code   kode antaraIntermediate code   kode antara
Intermediate code kode antaraGunawan Manalu
 
Rpl 10-perancangan user interface
Rpl 10-perancangan user interfaceRpl 10-perancangan user interface
Rpl 10-perancangan user interfacef' yagami
 
Interaksi manusia dan komputer
Interaksi manusia dan komputerInteraksi manusia dan komputer
Interaksi manusia dan komputerMiftahul Khair N
 

What's hot (20)

Analisis Semantik - P 6 Teknik Kompilasi
Analisis Semantik - P 6 Teknik KompilasiAnalisis Semantik - P 6 Teknik Kompilasi
Analisis Semantik - P 6 Teknik Kompilasi
 
INTERAKSI MANUSIA DAN KOMPUTER
INTERAKSI MANUSIA DAN KOMPUTERINTERAKSI MANUSIA DAN KOMPUTER
INTERAKSI MANUSIA DAN KOMPUTER
 
Ragam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan KomputerRagam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan Komputer
 
Kumpulan catatan Teknik Kompilasi
Kumpulan catatan Teknik KompilasiKumpulan catatan Teknik Kompilasi
Kumpulan catatan Teknik Kompilasi
 
IMK - Strategi Banyak Window
IMK - Strategi Banyak WindowIMK - Strategi Banyak Window
IMK - Strategi Banyak Window
 
SLIDE KE:5 NFA
SLIDE KE:5 NFASLIDE KE:5 NFA
SLIDE KE:5 NFA
 
Use skenario
Use skenarioUse skenario
Use skenario
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomata
 
Memory
MemoryMemory
Memory
 
Kriptografi - Serangan Terhadap Kriptografi
Kriptografi - Serangan Terhadap KriptografiKriptografi - Serangan Terhadap Kriptografi
Kriptografi - Serangan Terhadap Kriptografi
 
Teknik kompilasi
Teknik kompilasiTeknik kompilasi
Teknik kompilasi
 
Testing&implementasi 3
Testing&implementasi 3Testing&implementasi 3
Testing&implementasi 3
 
Modul 4 representasi pengetahuan
Modul 4   representasi pengetahuanModul 4   representasi pengetahuan
Modul 4 representasi pengetahuan
 
technik kompilasi
technik kompilasitechnik kompilasi
technik kompilasi
 
Prinsip usability
Prinsip usabilityPrinsip usability
Prinsip usability
 
Perkuliahan 01 Teknik kompilasi
Perkuliahan 01 Teknik kompilasiPerkuliahan 01 Teknik kompilasi
Perkuliahan 01 Teknik kompilasi
 
Intermediate code kode antara
Intermediate code   kode antaraIntermediate code   kode antara
Intermediate code kode antara
 
Pengujian Perangkat Lunak
Pengujian Perangkat LunakPengujian Perangkat Lunak
Pengujian Perangkat Lunak
 
Rpl 10-perancangan user interface
Rpl 10-perancangan user interfaceRpl 10-perancangan user interface
Rpl 10-perancangan user interface
 
Interaksi manusia dan komputer
Interaksi manusia dan komputerInteraksi manusia dan komputer
Interaksi manusia dan komputer
 

Viewers also liked

Multiplekser - Demultiplekser - Pertemuan 7
Multiplekser - Demultiplekser - Pertemuan 7Multiplekser - Demultiplekser - Pertemuan 7
Multiplekser - Demultiplekser - Pertemuan 7ahmad haidaroh
 
Pertemuan 1 - Pendahuluan
Pertemuan 1 -  PendahuluanPertemuan 1 -  Pendahuluan
Pertemuan 1 - Pendahuluanahmad haidaroh
 
Pertemuan 2 - Sistem Bilangan
Pertemuan 2 - Sistem BilanganPertemuan 2 - Sistem Bilangan
Pertemuan 2 - Sistem Bilanganahmad haidaroh
 
CFG dan PARSING - P 5 - Teknik Kompilasi
CFG dan PARSING - P 5 - Teknik KompilasiCFG dan PARSING - P 5 - Teknik Kompilasi
CFG dan PARSING - P 5 - Teknik Kompilasiahmad haidaroh
 
Image Compression - Citra Digital
Image Compression - Citra DigitalImage Compression - Citra Digital
Image Compression - Citra Digitalahmad haidaroh
 
Pertemuan 0 - Sejarah Elektronika
Pertemuan 0 - Sejarah ElektronikaPertemuan 0 - Sejarah Elektronika
Pertemuan 0 - Sejarah Elektronikaahmad haidaroh
 
Sistem Homogen dan Invers-Matrik - Pertemuan 5.
Sistem Homogen dan Invers-Matrik - Pertemuan 5. Sistem Homogen dan Invers-Matrik - Pertemuan 5.
Sistem Homogen dan Invers-Matrik - Pertemuan 5. ahmad haidaroh
 
P 1 Pendahuluan - Teknik Kompilasi
P 1 Pendahuluan - Teknik KompilasiP 1 Pendahuluan - Teknik Kompilasi
P 1 Pendahuluan - Teknik Kompilasiahmad haidaroh
 
Modul 1 pengenalan kecerdasan buatan
Modul 1   pengenalan kecerdasan buatanModul 1   pengenalan kecerdasan buatan
Modul 1 pengenalan kecerdasan buatanahmad haidaroh
 
P 2 Konsep & Notasi Bahasa - Teknik Kompilasi
P 2 Konsep & Notasi Bahasa - Teknik KompilasiP 2 Konsep & Notasi Bahasa - Teknik Kompilasi
P 2 Konsep & Notasi Bahasa - Teknik Kompilasiahmad haidaroh
 
Pertemuan 5a gerbang kombinasi-maxtem-minterm
Pertemuan 5a   gerbang kombinasi-maxtem-mintermPertemuan 5a   gerbang kombinasi-maxtem-minterm
Pertemuan 5a gerbang kombinasi-maxtem-mintermahmad haidaroh
 
Notasi Bahasa - P 5,6,7
Notasi Bahasa - P 5,6,7 Notasi Bahasa - P 5,6,7
Notasi Bahasa - P 5,6,7 ahmad haidaroh
 
Pertemuan 1 - Introduction - Citra Digital
Pertemuan 1 - Introduction - Citra DigitalPertemuan 1 - Introduction - Citra Digital
Pertemuan 1 - Introduction - Citra Digitalahmad haidaroh
 
Pertemuan 6 Penyederhanaan RL-Karnaugh Map
Pertemuan 6   Penyederhanaan RL-Karnaugh MapPertemuan 6   Penyederhanaan RL-Karnaugh Map
Pertemuan 6 Penyederhanaan RL-Karnaugh Mapahmad haidaroh
 
Aritmatika Biner - Pertemuan 3
Aritmatika Biner - Pertemuan 3Aritmatika Biner - Pertemuan 3
Aritmatika Biner - Pertemuan 3ahmad haidaroh
 

Viewers also liked (20)

Bahasa Regular - P3
Bahasa Regular - P3Bahasa Regular - P3
Bahasa Regular - P3
 
Multiplekser - Demultiplekser - Pertemuan 7
Multiplekser - Demultiplekser - Pertemuan 7Multiplekser - Demultiplekser - Pertemuan 7
Multiplekser - Demultiplekser - Pertemuan 7
 
Error Handling - P 7
Error Handling - P 7Error Handling - P 7
Error Handling - P 7
 
Teknik Optimasi - P8
Teknik Optimasi - P8Teknik Optimasi - P8
Teknik Optimasi - P8
 
Pertemuan 1 - Pendahuluan
Pertemuan 1 -  PendahuluanPertemuan 1 -  Pendahuluan
Pertemuan 1 - Pendahuluan
 
Presentasi Ordik 2016
Presentasi  Ordik   2016Presentasi  Ordik   2016
Presentasi Ordik 2016
 
Pertemuan 2 - Sistem Bilangan
Pertemuan 2 - Sistem BilanganPertemuan 2 - Sistem Bilangan
Pertemuan 2 - Sistem Bilangan
 
CFG dan PARSING - P 5 - Teknik Kompilasi
CFG dan PARSING - P 5 - Teknik KompilasiCFG dan PARSING - P 5 - Teknik Kompilasi
CFG dan PARSING - P 5 - Teknik Kompilasi
 
Image Compression - Citra Digital
Image Compression - Citra DigitalImage Compression - Citra Digital
Image Compression - Citra Digital
 
Pertemuan 0 - Sejarah Elektronika
Pertemuan 0 - Sejarah ElektronikaPertemuan 0 - Sejarah Elektronika
Pertemuan 0 - Sejarah Elektronika
 
Sistem Homogen dan Invers-Matrik - Pertemuan 5.
Sistem Homogen dan Invers-Matrik - Pertemuan 5. Sistem Homogen dan Invers-Matrik - Pertemuan 5.
Sistem Homogen dan Invers-Matrik - Pertemuan 5.
 
P 1 Pendahuluan - Teknik Kompilasi
P 1 Pendahuluan - Teknik KompilasiP 1 Pendahuluan - Teknik Kompilasi
P 1 Pendahuluan - Teknik Kompilasi
 
Modul 1 pengenalan kecerdasan buatan
Modul 1   pengenalan kecerdasan buatanModul 1   pengenalan kecerdasan buatan
Modul 1 pengenalan kecerdasan buatan
 
Presentasi internet
Presentasi internetPresentasi internet
Presentasi internet
 
P 2 Konsep & Notasi Bahasa - Teknik Kompilasi
P 2 Konsep & Notasi Bahasa - Teknik KompilasiP 2 Konsep & Notasi Bahasa - Teknik Kompilasi
P 2 Konsep & Notasi Bahasa - Teknik Kompilasi
 
Pertemuan 5a gerbang kombinasi-maxtem-minterm
Pertemuan 5a   gerbang kombinasi-maxtem-mintermPertemuan 5a   gerbang kombinasi-maxtem-minterm
Pertemuan 5a gerbang kombinasi-maxtem-minterm
 
Notasi Bahasa - P 5,6,7
Notasi Bahasa - P 5,6,7 Notasi Bahasa - P 5,6,7
Notasi Bahasa - P 5,6,7
 
Pertemuan 1 - Introduction - Citra Digital
Pertemuan 1 - Introduction - Citra DigitalPertemuan 1 - Introduction - Citra Digital
Pertemuan 1 - Introduction - Citra Digital
 
Pertemuan 6 Penyederhanaan RL-Karnaugh Map
Pertemuan 6   Penyederhanaan RL-Karnaugh MapPertemuan 6   Penyederhanaan RL-Karnaugh Map
Pertemuan 6 Penyederhanaan RL-Karnaugh Map
 
Aritmatika Biner - Pertemuan 3
Aritmatika Biner - Pertemuan 3Aritmatika Biner - Pertemuan 3
Aritmatika Biner - Pertemuan 3
 

Similar to Analisis leksikal tugas

Teknik kompilasi
Teknik kompilasiTeknik kompilasi
Teknik kompilasiarya bakri
 
Tm teknik kompilasi juni 2013
Tm   teknik kompilasi juni 2013Tm   teknik kompilasi juni 2013
Tm teknik kompilasi juni 2013Ratzman III
 
PERTEMUAN_10_11_TEKNIK_KOMPILASI.ppt
PERTEMUAN_10_11_TEKNIK_KOMPILASI.pptPERTEMUAN_10_11_TEKNIK_KOMPILASI.ppt
PERTEMUAN_10_11_TEKNIK_KOMPILASI.pptDhipa2
 
4.analisisleksikalfix
4.analisisleksikalfix4.analisisleksikalfix
4.analisisleksikalfixyuster92
 
Laporan hasil praktikum modul i pengenalan pascal
Laporan hasil praktikum modul i pengenalan pascalLaporan hasil praktikum modul i pengenalan pascal
Laporan hasil praktikum modul i pengenalan pascalMeycelino A. T
 
Algoritma dan pemrograman
Algoritma dan pemrogramanAlgoritma dan pemrograman
Algoritma dan pemrogramanMastur Cell
 
Algoritma - Chapter - 1
Algoritma - Chapter - 1Algoritma - Chapter - 1
Algoritma - Chapter - 1beiharira
 
Ringkasan materi teori algoritma
Ringkasan materi teori algoritmaRingkasan materi teori algoritma
Ringkasan materi teori algoritmaAkhmad Asari
 
Pertemuan ke-3-analisis-leksikal
Pertemuan ke-3-analisis-leksikalPertemuan ke-3-analisis-leksikal
Pertemuan ke-3-analisis-leksikalMustajib Umroni
 
1. konsep dasar pemrograman pascal
1. konsep dasar pemrograman pascal1. konsep dasar pemrograman pascal
1. konsep dasar pemrograman pascalsuhendi Harun
 
listiati univ bung hata (1110013211051) Algoritma dan flowchart
listiati univ bung hata (1110013211051) Algoritma dan flowchartlistiati univ bung hata (1110013211051) Algoritma dan flowchart
listiati univ bung hata (1110013211051) Algoritma dan flowchartMaryanto Sumringah SMA 9 Tebo
 
Pengantar Algoritma Dan Program
Pengantar Algoritma Dan ProgramPengantar Algoritma Dan Program
Pengantar Algoritma Dan ProgramAkmal Fajar
 

Similar to Analisis leksikal tugas (20)

Teknik kompilasi
Teknik kompilasiTeknik kompilasi
Teknik kompilasi
 
Teknik kompilasi
Teknik kompilasiTeknik kompilasi
Teknik kompilasi
 
Teknik kompilasi
Teknik kompilasiTeknik kompilasi
Teknik kompilasi
 
02 evolution
02 evolution02 evolution
02 evolution
 
Tm teknik kompilasi juni 2013
Tm   teknik kompilasi juni 2013Tm   teknik kompilasi juni 2013
Tm teknik kompilasi juni 2013
 
PERTEMUAN_10_11_TEKNIK_KOMPILASI.ppt
PERTEMUAN_10_11_TEKNIK_KOMPILASI.pptPERTEMUAN_10_11_TEKNIK_KOMPILASI.ppt
PERTEMUAN_10_11_TEKNIK_KOMPILASI.ppt
 
Struktur compiler session 4
Struktur compiler session 4Struktur compiler session 4
Struktur compiler session 4
 
Pascal buku
Pascal bukuPascal buku
Pascal buku
 
4.analisisleksikalfix
4.analisisleksikalfix4.analisisleksikalfix
4.analisisleksikalfix
 
Laporan hasil praktikum modul i pengenalan pascal
Laporan hasil praktikum modul i pengenalan pascalLaporan hasil praktikum modul i pengenalan pascal
Laporan hasil praktikum modul i pengenalan pascal
 
Algoritma dan pemrograman
Algoritma dan pemrogramanAlgoritma dan pemrograman
Algoritma dan pemrograman
 
Algoritma - Chapter - 1
Algoritma - Chapter - 1Algoritma - Chapter - 1
Algoritma - Chapter - 1
 
Ringkasan materi teori algoritma
Ringkasan materi teori algoritmaRingkasan materi teori algoritma
Ringkasan materi teori algoritma
 
Pseudopascal 2009
Pseudopascal 2009Pseudopascal 2009
Pseudopascal 2009
 
Pertemuan ke-3-analisis-leksikal
Pertemuan ke-3-analisis-leksikalPertemuan ke-3-analisis-leksikal
Pertemuan ke-3-analisis-leksikal
 
1. konsep dasar pemrograman pascal
1. konsep dasar pemrograman pascal1. konsep dasar pemrograman pascal
1. konsep dasar pemrograman pascal
 
listiati univ bung hata (1110013211051) Algoritma dan flowchart
listiati univ bung hata (1110013211051) Algoritma dan flowchartlistiati univ bung hata (1110013211051) Algoritma dan flowchart
listiati univ bung hata (1110013211051) Algoritma dan flowchart
 
Pengantar Algoritma Dan Program
Pengantar Algoritma Dan ProgramPengantar Algoritma Dan Program
Pengantar Algoritma Dan Program
 
Jeni J2 Me Bab08 Web Services
Jeni J2 Me Bab08 Web ServicesJeni J2 Me Bab08 Web Services
Jeni J2 Me Bab08 Web Services
 
Jeni j2 me-bab08-web services
Jeni j2 me-bab08-web servicesJeni j2 me-bab08-web services
Jeni j2 me-bab08-web services
 

Analisis leksikal tugas

  • 2. 2 Aminah Tri Rahayu ▪ Qoni Annur Arzaki ▪ Wahyudi ▪ M. Abdul Honi ▪ Alvin Aperma ▪ TEKNIK KOMPILASI
  • 3. 3
  • 5. 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. 5
  • 6. Analisis leksikal membuat pekerjaan membuat sebuah parser jadi lebih mudah; ketimbang membangun nama setiap fungsi dan variabel dari karakter-karakter yang menyusunnya, dengan analisis leksikal parser cukup hanya berurusan dengan sekumpulan token dan nilai sintaksis masing-masing. Terlepas dari efisiensi pemrograman yang dapat dicapai dengan penggunaannya, proses kerja analisis leksikal yang membaca lebih dari sekali setiap karakter dari input yang diberikan menjadikan penganalisa leksikal sebagai sub-sistem yang paling intensif melakukan komputasi, terutama bila digunakan dalam sebuah kompilator. 6 Tujuan atau perananya :
  • 7. Analisis Leksikal merupakan komponen kompilasi independen yang berkomunikasi dengan parser lewat antarmuka yang terdefinisi bagus dan sederhana sehingga pemeliharaan analisis leksikal menjadi lebih mudah dimana perubahan- perubahan terhadap analisis leksikal tidak berdampak pada pengubahan kompilator secara keseluruhan. Agar dapat memperoleh fitur ini, 7
  • 8. Apa aja sih tugas-tugas Analisis leksikal ? Konversi Program Sumber Menjadi Barisan Token Mengubah program sumber yang dipandang sebagai barisan byte/karakter menjadi token Menangani Kerumitan Sistem Masukkan/Keluaran Karena 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. 8
  • 9. Tugas-tugas tambahan Analisis Leksikal Penghilangan komentar dan whitespace (tab,spasi,karakter lainnya) Tindakan housekeeping dilakukan scanner sehingga mengisolasikan dari parser dan komponen-komponen kompilator lain. Peran ini menyederhanakan perancangan parser (dan grammar bahasa pemrograman). Scanner juga mencatat nomor baris saat itu sehingga penanganan kesalahan yang cerdas dapat mengirim pesan kesalahan dengan lebih akurat. 9
  • 10. Konversi literal/konstanta numerik menjadi tipe data tertentu Analisis leksikal dapat mengirim token, dan nilainya. Nilai ini biasa disebut atribut. Namun demikian, bila analisis leksikal ditambahin dengan tugas-tugas tambahan yang terlalu banyak juga akan menjadi tidak baik. Karena itu membatasi analisis leksikal hanya untuk melakukan tugas pengenalan pola token (ditambah membuang komentar) adalah mempermudah pemeliharaan. 10
  • 11. Tahap Pelaksanaan Analisis Leksikal Tahap single one pass Terjadi interaksi antara scanner dan parser. Sacnner dipanggil saat parser memerlukan token berikutnya. Pendekatan ini lebih baik karena bentuk internal program sumber yang lengkap tidak perlu dibangun dan disimpan di memori sebelum parsing dimulai. 11
  • 12. Tahap separate pass Scanner memproses secara terpisah, dilakukan sebelum parsing. Hasil scanner disimpan dalam file. Dari file tersebut, parsing melakukan kegiatannya. Scanner mengirim nilai-nilai integer yang mempresentasikan bentuk internal token, bukan nilai-nilai string. Keunggulan cara ini adalah ukurannya kecil dan tetap. Parser sangat lebih efisien bekerja dengan nilai integer yang mempresentasikan simbol daripada string nyata dengan panjang variabel. 12
  • 13. Implementasi Analisis Leksikal 1. Pengenalan Token - Scanner harus dapat mengenali token - Terlebih dahulu dideskripsikan token-token yang harus dikenali 13
  • 14. 2. Pendeskripsian Token - Menggunakan reguler grammar. Menspesifikasikan aturan-aturan pembangkit token-token dengan kelemahan reguler grammar menspesifikasikan token berbentuk pembangkit, sedang scanner perlu bentuk pengenalan. - Menggunakan ekspresi grammar. Menspesifikasikan token-token dengan ekspresi reguler. - Model matematis yang dapat memodelkan pengenalan adalah finite- state acceptor (FSA) atau finite automata. 14
  • 15. 3. Implementasi Analisis Leksikal sebagai Finite Automata Pada pemodelan analisis leksikal sebagai pengenal yang menerapkan finite automata, analisis leksikal tidak cuma hanya melakukan mengatakan YA atau TIDAK. Dengan demikian selain pengenal, maka analisis leksikal juga melakukan aksi-aksi tambahan yang diasosiasikan dengan string yangsedang diolah. Analisis leksikal dapat dibangun dengan menumpangkan pada konsep pengenal yang berupa finite automata dengan cara menspesifikasikan rutin-rutin (aksi-aksi) tertentu terhadap string yang sedang dikenali. 15
  • 16. 4. Penanganan Kesalahan di Analisis Leksikal Hanya sedikit kesalahan yang diidentifikasi di analisis leksikal secara mandiri karena analisis leksikal benar-benar merupakan pandangan sangat lokal terhadap program sumber. 16
  • 17. Bila ditemui situasi dimana analisis leksikal tidak mampu melanjutkan proses karena tidak ada pola token yang cocok, maka terdapat beragam alternatif pemulihan. yaitu: - "Panic mode" dengan menghapus karakter-karakter berikutnya sampai analisis leksikal menemukan token yang terdefinisi bagus - Menyisipkan karakter yang hilang - Mengganti karakter yang salah dengan karakter yang benar - Mentransposisikan 2 karakter yang bersebelahan. Salah satu cara untuk menemukan kesalahan-kesalahan di program adalah menghitung jumlah transformasi kesalahan minimum yang diperlukan untuk mentransformasikan program yang salah menjadi program yag secara sintaks benar. 17
  • 18. 18
  • 19. 19
  • 20. 20
  • 21. 21
  • 22. 22