Kamis, 18 April 2013


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
  1. Parser top-down, Beberapa parser yang menggunakan top-down parsing meliputi: Rekursif keturunan parse, LL parser (Kiri-ke-kanan, paling kiri derivasi);
  2. 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;
  3. 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;
  4. 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