Pengantar Teknik Kompilasi

Slides:



Advertisements
Presentasi serupa
Pemrograman Berorientasi Objek (2)
Advertisements

Pengayaan Software/Hardware dan Pengantarmukaan
DASAR-DASAR PEMROGRAMAN C
Teknik Kompilasi Febuari 2013.
Pengantar Teknik Kompilasi
TEKNIK KOMPILASI.
KONSEP dan NOTASI BAHASA
KOMPILASI KOMPILATOR (COMPILER) adalah :
Bahasa Pemrograman Tingkat Tinggi
Komponen sebuah Kompilator
Lexical Analyzer (Scanner)
Elemen Dasar QBasic.
Kuliah 2 : Analisis Leksikal
Algoritma (Struktur, Tipe Data, Input/Output)
Notasi Algoritma.
ANALISIS LEKSIKAL.
STRUKTUR COMPILLER.
Pengantar Teknik Kompilasi
Cara Penanganan Kesalahan
Komponen sebuah Kompilator
MATERI PERKULIAHAN TEKNIK KOMPILASI
MATERI PERKULIAHAN TEKNIK KOMPILASI
Pengantar Teknik Kompilasi
TEORI BAHASA DAN AUTOMATA
Diagram dan Tabel Transisi
PRAKTIKUM ALGORITMA PEMROGRAMAN
MODEL KOMPILATOR FUNGSI UMUM BAGIAN KOMPILATOR Dosen Pengampu:
FUNGSI UMUM BAGIAN KOMPILATOR Dosen Pengampu: Istiqomah, s.kom
Tipe Data By Serdiwansyah N. A..
PENGANTAR TEKNIK KOMPILASI
Cara Penanganan Kesalahan
BAB 2 Elemen Dasar.
Analisa Semantik, Kode Antara,
Analisis semantik, kode antara dan pembangkitan kode
Pesan-pesan kesalahan
Analisis leksikal (Scanner)
Pengantar Teknik Kompilasi
MODEL KOMPILATOR FUNGSI UMUM BAGIAN KOMPILATOR Dosen Pengampu:
Pseudocode – Tipe Data, Variabel, dan Operator
Pengantar Teknik Kompilasi
Pengantar Teknik Kompilasi
Semantics Analyser Contoh : A := ( A+B) * (C+D)
ANALISIS LEKSIKAL.
ANALISIS LEKSIKAL (Scanner)
Analisis leksikal ( SCANNER )
Analisa Semantik, Kode Antara,
Cara Penanganan Kesalahan
Pengantar Teknik Kompilasi
TEKNIK KOMPILASI ANALISIS LEKSIKAL
ANALISIS LEKSIKAL.
Proses kompilasi COMPILATOR.
CARA PENANGAN KESALAHAN
Pengantar Teknik Kompilasi
Struktur Data.
TEKNIK KOMPILASI PERTEMUAN II.
Teknik Kompilasi Abdul Wahid, ST, M.Kom
Struktur Data.
Pengenalan Kompilasi & Klasifikasi Tatabahasa Formal menurut Chomsky
Pengantar Teknik Kompilasi
Pengantar Teknik Kompilasi
Ilustrasi Proses Kompilasi
Pengantar Teknik Kompilasi
Automata Hingga Deterministik (AHD)
Pengantar Teknik Kompilasi
Semantics Analyser by Kustanto
CARA PENANGAN KESALAHAN
Cara Penanganan Kesalahan
ANALISIS LEKSIKAL.
Pengantar Teknik Kompilasi
ANALISIS LEKSIKAL.
Transcript presentasi:

Pengantar Teknik Kompilasi Analisis Leksikal

Struktur Kompiler Program Sumber Program Sasaran TABEL SIMBOL ANALISA SINTESA Penganalisa Semantik Pembangkit Kode antara Penganalisa Leksikal (scanner) Penganalisa Sintaks (parser) Pembentuk kode Pengoptimal kode TABEL SIMBOL

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 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 tersebut

Penganalisa Leksikal Token Deskripsi Informal Contoh Lexeme if Karakter i, f else Karakter e, l, s, e comparison < atau > atau <= atau >= atau == atau != <=, != id Huruf, dapat diikuti oleh huruf dan/atau angka Pi, score, D2 number Konstanta angka 3.14159, 0, 6.02e23 literal Apapun yang diapit “ “kata”, “apapun”

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.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 suatu tabel (penyajian internal) Dapat termasuk lokasi dari token dalam tabel tempat token tersebut disimpan

Penganalisa Leksikal Nama variabel 1 Konstanta 2 Label 3 Keyword 4 Operator penambahan 5 Operator penugasan 6 Operator pengurangan 7 Operator perkalian 8 Operator pembagian 9 Tanda baca koma 10 Tanda baca : 11 Tanda baca ; 12

Penganalisa Leksikal position = initial + rate * 60 (id,1) (=) (id,2) (+) (id,3) (*) (number,60) (;) Token Bilangan Penyajian Lokasi position 1 = 6 initial 2 + 5 rate 3 * 8 60 ; 12

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 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 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 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 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 lexemeBegin, 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