Pengantar Teknik Kompilasi Analisis Leksikal Struktur Kompiler Program
![Pengantar Teknik Kompilasi Analisis Leksikal Pengantar Teknik Kompilasi Analisis Leksikal](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-1.jpg)
![Struktur Kompiler Program Sumber Program Sasaran ANALISA Penganalisa Leksikal (scanner) Penganalisa Sintaks (parser) SINTESA Struktur Kompiler Program Sumber Program Sasaran ANALISA Penganalisa Leksikal (scanner) Penganalisa Sintaks (parser) SINTESA](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-2.jpg)
![Penganalisa Leksikal �Membaca program sumber, karakter demi karakter �Sederetan (satu atau lebih) karakter dikelompokkan Penganalisa Leksikal �Membaca program sumber, karakter demi karakter �Sederetan (satu atau lebih) karakter dikelompokkan](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-3.jpg)
![Penganalisa Leksikal �Token terdiri atas pasangan nama token dan optional attribute value �Pattern adalah Penganalisa Leksikal �Token terdiri atas pasangan nama token dan optional attribute value �Pattern adalah](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-4.jpg)
![Penganalisa Leksikal Token Deskripsi Informal Contoh Lexeme if Karakter i, f if else Karakter Penganalisa Leksikal Token Deskripsi Informal Contoh Lexeme if Karakter i, f if else Karakter](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-5.jpg)
![Penganalisa Leksikal �Program sumber merupakan input dari Scanner �Analisis leksikal memisahkan naskah program sumber Penganalisa Leksikal �Program sumber merupakan input dari Scanner �Analisis leksikal memisahkan naskah program sumber](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-6.jpg)
![Penganalisa Leksikal �fahrenheit ◦ ◦ ◦ ◦ : = 32 + celcius * 1. Penganalisa Leksikal �fahrenheit ◦ ◦ ◦ ◦ : = 32 + celcius * 1.](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-7.jpg)
![Penganalisa Leksikal �Token hasil Scanner biasanya disajikan dalam bentuk bilangan integer yang unik dalam Penganalisa Leksikal �Token hasil Scanner biasanya disajikan dalam bentuk bilangan integer yang unik dalam](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-8.jpg)
![Penganalisa Leksikal � Nama variabel � Konstanta � Label � Keyword � Operator penambahan Penganalisa Leksikal � Nama variabel � Konstanta � Label � Keyword � Operator penambahan](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-9.jpg)
![Penganalisa Leksikal �position Token = initial + rate * 60 Bilangan Penyajian Lokasi position Penganalisa Leksikal �position Token = initial + rate * 60 Bilangan Penyajian Lokasi position](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-10.jpg)
![Penganalisa Leksikal �Karena lexical analyzer merupakan bagian dari kompiler yang membaca teks sumber, ada Penganalisa Leksikal �Karena lexical analyzer merupakan bagian dari kompiler yang membaca teks sumber, ada](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-11.jpg)
![Lexical Error �Sulit mengetahui pada penganalisa leksikal apabila terjadi source-code error tanpa bantuan komponen Lexical Error �Sulit mengetahui pada penganalisa leksikal apabila terjadi source-code error tanpa bantuan komponen](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-12.jpg)
![Lexical Error �Opsi error recovery yang dapat dilakukan: ◦ Hapus satu karakter dari input Lexical Error �Opsi error recovery yang dapat dilakukan: ◦ Hapus satu karakter dari input](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-13.jpg)
![Input Buffering �Dalam menganalisa lexime, kesulitan yang cukup sering ditemui adalah kebutuhan untuk melihat Input Buffering �Dalam menganalisa lexime, kesulitan yang cukup sering ditemui adalah kebutuhan untuk melihat](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-14.jpg)
![Input Buffering �Dikarenakan jumlah waktu yang dibutuhkan untuk memproses karakter dan sejumlah besar karakter Input Buffering �Dikarenakan jumlah waktu yang dibutuhkan untuk memproses karakter dan sejumlah besar karakter](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-15.jpg)
![Input Buffering �Untuk setiap input pada buffer, dua pointer dioperasikan ◦ lexeme. Begin, menandai Input Buffering �Untuk setiap input pada buffer, dua pointer dioperasikan ◦ lexeme. Begin, menandai](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-16.jpg)
![](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-17.jpg)
- Slides: 17
![Pengantar Teknik Kompilasi Analisis Leksikal Pengantar Teknik Kompilasi Analisis Leksikal](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-1.jpg)
Pengantar Teknik Kompilasi Analisis Leksikal
![Struktur Kompiler Program Sumber Program Sasaran ANALISA Penganalisa Leksikal scanner Penganalisa Sintaks parser SINTESA Struktur Kompiler Program Sumber Program Sasaran ANALISA Penganalisa Leksikal (scanner) Penganalisa Sintaks (parser) SINTESA](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-2.jpg)
Struktur Kompiler Program Sumber Program Sasaran ANALISA Penganalisa Leksikal (scanner) Penganalisa Sintaks (parser) SINTESA Penganalisa Semantik Pembangkit Kode antara TABEL SIMBOL Pembentuk kode Pengoptimal kode
![Penganalisa Leksikal Membaca program sumber karakter demi karakter Sederetan satu atau lebih karakter dikelompokkan Penganalisa Leksikal �Membaca program sumber, karakter demi karakter �Sederetan (satu atau lebih) karakter dikelompokkan](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-3.jpg)
Penganalisa Leksikal �Membaca program sumber, karakter demi karakter �Sederetan (satu atau lebih) karakter dikelompokkan menjadi satu kesatuan mengacu kepada pola kelompok karakter (token) yang ditentukan dalam bahasa sumber �Kelompok karakter yang membentuk sebuah token dinamakan lexeme untuk token tersebut �Setiap token yang dihasilkan disimpan di dalam tabel simbol �Sederetan karakter yang tidak mengikuti pola token akan dilaporkan sebagai token tak dikenal (unidentified token)
![Penganalisa Leksikal Token terdiri atas pasangan nama token dan optional attribute value Pattern adalah Penganalisa Leksikal �Token terdiri atas pasangan nama token dan optional attribute value �Pattern adalah](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-4.jpg)
Penganalisa Leksikal �Token terdiri atas pasangan nama token dan optional attribute value �Pattern adalah deskripsi dari token yang dapat dibentuk dari sekumpulan lexeme �Lexeme adalah deretan karakter pada program sumber yang sesuai dengan pattern untuk sebuah token dan diidentifikasi oleh penganalisa leksikal sebagai pembentuk dari token
![Penganalisa Leksikal Token Deskripsi Informal Contoh Lexeme if Karakter i f if else Karakter Penganalisa Leksikal Token Deskripsi Informal Contoh Lexeme if Karakter i, f if else Karakter](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-5.jpg)
Penganalisa Leksikal Token Deskripsi Informal Contoh Lexeme if Karakter i, f if else Karakter e, l, s, e else compariso n < atau > atau <= atau >= atau == atau != <=, != id Huruf, dapat diikuti oleh huruf dan/atau angka Pi, score, D 2 number Konstanta angka 3. 14159, 0, 6. 02 e 23 literal Apapun yang diapit “ “kata”, “apapun”
![Penganalisa Leksikal Program sumber merupakan input dari Scanner Analisis leksikal memisahkan naskah program sumber Penganalisa Leksikal �Program sumber merupakan input dari Scanner �Analisis leksikal memisahkan naskah program sumber](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-6.jpg)
Penganalisa Leksikal �Program sumber merupakan input dari Scanner �Analisis leksikal memisahkan naskah program sumber yang masuk menjadi bagian leksikografis terkecil/token ◦ ◦ ◦ Keyword Identifier Konstanta Operator Delimiter
![Penganalisa Leksikal fahrenheit 32 celcius 1 Penganalisa Leksikal �fahrenheit ◦ ◦ ◦ ◦ : = 32 + celcius * 1.](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-7.jpg)
Penganalisa Leksikal �fahrenheit ◦ ◦ ◦ ◦ : = 32 + celcius * 1. 8 Identifier fahrenheit Operator : = Konstanta 32 Operator + Identifier celcius Operator * Konstanta 1. 8
![Penganalisa Leksikal Token hasil Scanner biasanya disajikan dalam bentuk bilangan integer yang unik dalam Penganalisa Leksikal �Token hasil Scanner biasanya disajikan dalam bentuk bilangan integer yang unik dalam](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-8.jpg)
Penganalisa Leksikal �Token hasil Scanner biasanya disajikan dalam bentuk bilangan integer yang unik dalam suatu tabel (penyajian internal) �Dapat termasuk lokasi dari token dalam tabel tempat token tersebut disimpan
![Penganalisa Leksikal Nama variabel Konstanta Label Keyword Operator penambahan Penganalisa Leksikal � Nama variabel � Konstanta � Label � Keyword � Operator penambahan](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-9.jpg)
Penganalisa Leksikal � Nama variabel � Konstanta � Label � Keyword � Operator penambahan � Operator penugasan � Operator pengurangan � Operator perkalian � Operator pembagian � Tanda baca koma � Tanda baca : � Tanda baca ; 1 2 3 4 5 6 7 8 9 10 11 12
![Penganalisa Leksikal position Token initial rate 60 Bilangan Penyajian Lokasi position Penganalisa Leksikal �position Token = initial + rate * 60 Bilangan Penyajian Lokasi position](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-10.jpg)
Penganalisa Leksikal �position Token = initial + rate * 60 Bilangan Penyajian Lokasi position 1 1 = 6 0 initial 1 2 + 5 0 rate 1 3 * 8 0 60 2 60 ; 12 0 ◦ (id, 1) (=) (id, 2) (+) (id, 3) (*) (number, 60) (; )
![Penganalisa Leksikal Karena lexical analyzer merupakan bagian dari kompiler yang membaca teks sumber ada Penganalisa Leksikal �Karena lexical analyzer merupakan bagian dari kompiler yang membaca teks sumber, ada](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-11.jpg)
Penganalisa Leksikal �Karena lexical analyzer merupakan bagian dari kompiler yang membaca teks sumber, ada 2 proses yang dapat dilakukannya: ◦ Scanning ◦ Lexical analysis
![Lexical Error Sulit mengetahui pada penganalisa leksikal apabila terjadi sourcecode error tanpa bantuan komponen Lexical Error �Sulit mengetahui pada penganalisa leksikal apabila terjadi source-code error tanpa bantuan komponen](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-12.jpg)
Lexical Error �Sulit mengetahui pada penganalisa leksikal apabila terjadi source-code error tanpa bantuan komponen lain �fi (a == f(x)) … ◦ fi merupakan ‘if’ yang salah penulisan? ◦ fi merupakan identifier fungsi yang belum dideklarasikan?
![Lexical Error Opsi error recovery yang dapat dilakukan Hapus satu karakter dari input Lexical Error �Opsi error recovery yang dapat dilakukan: ◦ Hapus satu karakter dari input](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-13.jpg)
Lexical Error �Opsi error recovery yang dapat dilakukan: ◦ Hapus satu karakter dari input ◦ Sisipkan satu karakter pada input ◦ Ganti sebuah karakter dengan karakter lain ◦ Transposisi dua karakter yang bersebelahan
![Input Buffering Dalam menganalisa lexime kesulitan yang cukup sering ditemui adalah kebutuhan untuk melihat Input Buffering �Dalam menganalisa lexime, kesulitan yang cukup sering ditemui adalah kebutuhan untuk melihat](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-14.jpg)
Input Buffering �Dalam menganalisa lexime, kesulitan yang cukup sering ditemui adalah kebutuhan untuk melihat satu atau lebih karakter di depan (lexeme berikutnya) sebelum yakin bahwa kita mendapat lexeme yang tepat
![Input Buffering Dikarenakan jumlah waktu yang dibutuhkan untuk memproses karakter dan sejumlah besar karakter Input Buffering �Dikarenakan jumlah waktu yang dibutuhkan untuk memproses karakter dan sejumlah besar karakter](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-15.jpg)
Input Buffering �Dikarenakan jumlah waktu yang dibutuhkan untuk memproses karakter dan sejumlah besar karakter yang harus diproses saat melakukan kompilasi program sumber ukuran besar, telah dikembangkan teknik buffering �Menggunakan dua buffer yang secara bergantian diisi
![Input Buffering Untuk setiap input pada buffer dua pointer dioperasikan lexeme Begin menandai Input Buffering �Untuk setiap input pada buffer, dua pointer dioperasikan ◦ lexeme. Begin, menandai](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-16.jpg)
Input Buffering �Untuk setiap input pada buffer, dua pointer dioperasikan ◦ lexeme. Begin, menandai awal dari lexeme yang sedang ditentukan ◦ forward, melakukan scanning ke depan hingga ditemukan pola yang cocok �Jika jumlah karakter yang tersisa lebih kecil dari ukuran buffer maka karakter spesial, eof, digunakan untuk menandai akhir dari program sumber
![](https://slidetodoc.com/presentation_image_h/20fa1c11ddc0d93867fdaa567a9150be/image-17.jpg)
Analisis leksikal dalam teknik kompilasi
Translator teknik kompilasi
Materi teknik kompilasi
Teknik optimasi pada teknik kompilasi
Tabel optimasi
Contoh analisis semantik teknik kompilasi
Analisis semantik memanfaatkan
Analisis semantik teknik kompilasi
Apa itu kompilator
Contoh kesalahan leksikal
Introduction syntax
Triples notation adalah
Notasi quadruples
Notasi postfix teknik kompilasi
Diagram sintaks teknik kompilasi
Slidetodoc.com
Ken scanner
Contoh analisis leksikal