recursive descent parser = rekursif keturunan parser
Dalam ilmu komputer dan linguistik, parsing,
atau, lebih formal, analisis sintaksis, adalah proses menganalisis teks,
terbuat dari urutan token (misalnya, kata-kata), untuk menentukan struktur gramatikal
terhadap hal yang diberikan (lebih atau kurang) tata bahasa formal. Parsing juga merupakan istilah awal untuk diagram
kalimat bahasa alam, dan masih digunakan untuk diagram bahasa infleksi, seperti
bahasa-bahasa Roman atau Latin. Istilah penguraian Pars berasal dari bahasa
Latin (ōrātiōnis), yang berarti bagian (pidato).
Pembuatan
Compiler dengan Metode Recursive Descent Parser
.dimana Parser bertugas menganalisis token yang dihasilkan
pada proses scan sesuai dengan grammar. Recursive Descent Parser (RDP) adalah
salah satu cara untuk mengaplikasikan bahasa bebas konteks untuk melakukan
analisis sintaksis suatu source code. Ciri dari RDP yang menonjol adalah secara
rekursif menurunkan semua variabel dari awal sampai bertemu terminal dan tidak
pernah mengambil token secara mundur (no back track). Ciri lain dari RDP adalah
sangat bergantung pada algoritma scan dalam mengambil token.
RDP
juga dapat dikombinasikan dengan Predictive Parser. Predictive Parser (PP)
adalah parser yang menggunakan prediksi untuk mengoptimalkan kerja dari parser.
Parser model ini juga akan mengecilkan terjadinya rekursi kiri atau salah
interpretasi. Prinsip dari predictive parser adalah mengelompokkan produksi
sesuai dengan pola yang ada sehingga aturan produksi tertentu sudah
diprediksikan penurunannya.
Di
dalam proses kompilasi, analisis sintaksis menggunakan parser merupakan bagian
front end dari model kompilasi. Karakteristik dari parser top-down hanya
membutuhkan beberapa baris untuk mengakomodasi bahasa yang telah dirancang dan
sangat cocok dengan BNF, simbol variabel direpresentasikan dengan sebuah
prosedur,
Penurunan
secara rekursif dapat terlihat dari kedua algoritma. Prosedur bool_term
dipanggil oleh prosedur exp. Di dalam prosedur bool_term juga terjadi
pemanggilan prosedur, yaitu prosedur bool_not_fact. Pemanggilan prosedur
tersebut terjadi berulang-ulang (rekursif) dan terjadi penurunan (descent).
Rekursi (penurunan) terjadi sampai menemui simbol terminal (token). Masalah
utama dalam penggunaan rekursi adalah rekursi yang tidak berhenti. Oleh karena
itu, diperlukan kehati-hatian dalam pemakaian rekursi. Predictive parser
diperlukan untuk menekan atau menghilangkan kemungkinan terjadinya hal
tersebut.
.
Perancangan
Perancangan
merupakan tahap awal dari suatu aplikasi program untuk menghasilkan sistem yang
baik. Perancangan dibuat sebagai landasan implementasi untuk mempermudah
pembuatan aplikasi. Perancangan meliputi perancangan parser (BNF dan diagram
sintaks), perancangan scanner (FA) dan desain aplikasi.
a.
Perancangan Parser menggunakan BNF dan Diagram Sintaks
BNF
dan Diagram Sintaks Kode sumber pada kompiler memerlukan BNF dan diagram
sintaks agar pembuat program mudah dalam membuat program. Adapun beberapa
rancangan BNF dari kompiler yang dibuat
Parser
Dalam komputasi, parser adalah salah satu komponen dalam
sebuah interpreter atau kompiler, yang memeriksa sintaks yang benar dan
membangun struktur data (sering beberapa jenis pohon parse, sintaks abstrak
pohon atau struktur hirarkis lainnya) yang tersirat dalam token
masukan. Program pendeteksi kombinasi tombol sering menggunakan
penganalisis leksikal terpisah untuk membuat token dari urutan karakter
masukan. Parser dapat diprogram dengan tangan atau mungkin (semi-)
otomatis dihasilkan (dalam beberapa bahasa pemrograman) dengan alat (seperti
Yacc) dari tata bahasa yang ditulis dalam bentuk Backus-Naur.
Contoh
tentang parser
- Parser
top-down, Beberapa parser yang menggunakan top-down parsing
meliputi: Rekursif keturunan parse, LL parser (Kiri-ke-kanan,
paling kiri derivasi);
- Parser Earley, X-SAIGA –
Spesifikasi executable tata bahasa. Berisi publikasi yang terkait
dengan top-down parsing algoritma yang mendukung rekursi kiri dan
ambiguitas dalam waktu polinomial dan ruang;
- Parser Bottom-up,
Beberapa parser
yang menggunakan bottom-up parsing meliputi: Diutamakan
parser, Operator-diutamakan parser, Wikipedia diutamakan
parser, SM (konteks terbatas) parsing, LR parser (kiri ke kanan,
paling kanan derivasi), Wikipedia LR (SLR) parser, LALR
parser, Canonical LR (LR (1)) parser, GLR parser, CYK
parser;
- Pengembangan
perangkat lunak Parser, Beberapa alat yang terkenal meliputi pembangunan parser
berikut. Juga lihat perbandingan generator
parser, ANTLR, Banteng, Coco /
R, GOLD, JavaCC, Undang-undang, Ragel, Definisi
Sintaks Formalisme, Roh Parser Framework, Sintaksis, Yacc
Tidak ada komentar:
Posting Komentar