ANALISIS LEKSIKAL & SINTAKSIS - TEKNIK KOMPILASI - andyusuf-informatika

New Post

Senin, 06 November 2017

ANALISIS LEKSIKAL & SINTAKSIS - TEKNIK KOMPILASI

Yang dibahas pada artikel ini:

Analisis Leksikal:
1.  Tugas Scanner
2.  Besaran Leksi
Analisis Sintaksis:
1.  Pohon Sintaks
2.  Metode Parsing
3.  Parsing dengan Brute Forcw
4.  Parsing dengan Recursive Descent Parser

Analisis Leksikal:
1.  Tugas Scanner
•       Scanner bertugas melakukan analisis leksikal, yaitu mengidentifikasi semua besaran yang membangun suatu bahasa pada suatu program sumber.
•   Tugas Scanner:
Melakukan pembacaan kode sumber
Mengenali besaran leksik
Mentransformasi menjadi sebuah token
Mengirimkan token
Membuang/mengabaikan blank dan komentar dalam program
Menangani kesalahan
Menangani tabel simbol

2.  Besaran Leksi
1.Identifier
2.Nilai Konstanta
3.Operator dan Delimiter


Analisis Sintaksis:
1.  Pohon Sintaks
•       Sebuah pohon adalah suatu grap terhubung tidak sirkuler, yang memiliki satu simpul yang disebut akar.
•       Pohon sintaks berguna untuk menggambarkan bagaimana memperoleh suatu string dengan cara menurunkan simbol-simbol variabel menjadi simbol terminal.

2.  Metode Parsing
•       Proses parsing merupakan tahapan analisis sintaksis yang berguna untuk memeriksa urutan kemunculan token. Di dalam mengimplementasikan sebuah metode parsing ke dalam program perlu diperhatikan tiga hal sebagai berikut:
– Rentang Waktu Eksekusi
– Penanganan Kesalahan
– Penanganan Kode
•       Metode parsing bisa digolongkan sebagai berikut:
– Top Down
Metode ini melakukan penelusuran dari root/puncak menuju leaf/daun. Metode top down meliputi: Backtrack: Brute Force, dan No Backtrack: Recursive Descent Parser.
– Bottom Up
Metode ini melakukan penelusuran dari leaf/daun menuju ke root/puncak.


3.  Parsing dengan Brute Force
•       Metode ini memilih aturan produksi mulai dari paling kiri dan melakukan expand semua non terminal pada aturan produksi sampai yang tertinggal adalah simbol terminal.
Kelemahan dari Metode Brute Force
Mencoba untuk semua aturan produksi yang ada sehingga menjadi lambat.
Menyulitkan untuk melakukan pemulihan kesalahan.
Memakan banyak memory karena perlu mencatat lokasi bactrack.

•       Grammar yang rekursif kiri, tidak bisa diperiksa. Oleh karena itu, harus diubah menjadi tidak rekursif kiri.

4.  Parsing dengan Recursive Descent Parser
•       Merupakan salah satu cara untuk mengaplikasikan bahasa bebas konteks untuk melakukan analisis sintaksis suatu source code.
•       Ciri dari recursive descent parser adalah secara rekursif menurunkan semua variabel dari awal sampai bertemu terminal dan tidak pernah mengambil token secara mundur.
•       Pada recursive descent parser, simbol terminal atau variabel bukan sebuah karakter, melainkan berupa besaran leksik sebagai simbol terminal dan besaran sintaks sebagai simbol variabelnya.


Terima Kasih Telah Berkunjung :)

Tidak ada komentar:

Posting Komentar