Anda di halaman 1dari 2

8 -TEKNIK KOMPILASI

Kirana Indah Bestari | 1744190035

1. Jelaskan Yang dimaksud dengan analisis leksikal, dan


2. jelaskan tugas Scanner,
3. buat program untuk menghitung luas persegi panjang dan keliling persegi panjang dgn
C++
4. dan perhatikan saat compile jika ada yang bug jelaskan bug nya dimana

Jawab :
1. Analisis leksikal (bahasa Inggris: lexical analysis) 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.
Analisis leksikal terdiri dari dua tahap. Tahap pertama adalah pemindaian
(scanning); scanner biasanya dibuat berdasarkan prinsip Finite State Machine ("mesin
dengan jumlah keadaan terbatas"). Pada tahap ini, scanner akan membaca input
karakter-ke-karakter, mengubah keadaannya sendiri berdasarkan karakter yang tengah
dibaca. Setiap kondisi final (input dianggap valid) akan dicatat, bersama dengan lokasi
input. Pada akhirnya scanner akan menemui keadaan penolakan, yang tidak akan
berubah dengan input karakter apapun. Deteksi rekursi semacam ini akan mengakhiri
proses pemindaian dan memindahkan keadaan scanner ke keadaan final terakhir, dan
karenanya menyimpan informasi jenis dan besar lexeme valid yang terpanjang di
dalam input.
Namun lexeme tersebut belum punya nilai semantik apapun; pemberian nilai
semantik pada setiap unit leksikal adalah tugas dari evaluator yang memeriksa semua
karakter setiap lexeme dan memberinya nilai tertentu. Saat sebuah lexeme telah
memiliki informasi mengenai tipe dan nilainya, ia dapat secara valid disebut sebagai
token.
Analisis leksikal membuat pekerjaan parser jadi lebih mudah; daripada
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 penganalisis leksikal sebagai sub-sistem yang paling intensif melakukan
komputasi, terutama bila digunakan dalam sebuah kompilator.

2. Tugas Scanner adalah


 Melakukan pembacaan kode sumber dengan merunut karakter demi karakter
 Mengenali besaran leksik
 Mentransformasi menjadi sebuah token dan menentukan jenis token-nya
 Mengirimkan token
 Membuang/mengabaikan blank dan komentar dalam program
 Menangani kesalahan
 Menangani tabel simbol
 Bekerja berdasarkan finite state automata

3. Luas Persegi Panjang

Keliling Persegi Panjang :

4. Tidak ada Bug saat mengcompile

Anda mungkin juga menyukai