Anda di halaman 1dari 5

Analisis Sintaksis (syntactic analyzer atau parser)

pohon (tree) suatu graph terhubung yang tidak sirkuler, memiliki satu buah simpul (atau vertex / node) yaitu akar (root) dan dari akar ini memiliki lintasan (atau edge) ke setiap simpul yang lain.

pohon penurunan (atau derivation tree / syntax tree / parse tree) berguna untuk menggambarkan bagaimana cara memperoleh suatu untai (string) dengan cara menurunkan atau mengganti simbol-simbol variabel menjadi terminal. Setiap simbol variabel akan diturunkan atau diganti menjadi terminal. Simbol variabel dinotasikan dengan huruf besar (kapital) Simbol terminal dinotasikan dengan huruf kecil, menempati posisi daun (leaf) Simbol awal variabel S, menempati posisi puncak pohon (root)

Proses penurunan (atau parsing) bisa dilakukan antara lain dengan cara: a. penurunan melalui arah kiri (leftmost derivation): simbol variabel terkiri yang diperluas lebih dulu. b. penurunan melalui arah kanan (rightmost derivation): simbol variabel terkanan yang diperluas lebih dulu.

Contoh 1. Tata bahasa bebas konteks memiliki aturan produksi: S AB {S menurunkan variabel A B} A aA | a {A menurunkan terminal a variabel A atau terminal a} B bB | b {B menurunkan terminal b variabel B atau terminal b}

Berikut ini adalah gambar pohon penurunan untuk memperoleh untai aabbb

Catatan, melalui aturan produksi yang sama dapat dihasilkan beberapa buah untai. Contoh: aabbb, ab, aaaabbbb, dan lain-lain.

Contoh 2. Diketahui tata bahasa bebas konteks (CFG, context free grammar) memiliki aturan produksi sebagai berikut: S aAS | a A SbA | ba Berikut ini adalah gambar pohon penurunan untuk memperoleh untai aabbaa 2.1 melalui cara penurunan terkiri, akan diperoleh: S aAS aSbAS aabAS aabbaS aabbaa 2.2 melalui cara penurunan terkanan, akan diperoleh: S aAS aAa aSbAa aSbbaa aabbaa

Contoh 3. (Latihan) Diketahui tata bahasa bebas konteks memiliki aturan produksi: S aB | bA A b | bS | aBB B a | aS | bAA Gambarkan pohon penurunan untuk untai baaaabbbbb

Metode parsing Analisis sintaksis (atau proses parsing) berguna untuk memeriksa urutan kemunculan token. Pada proses ini, hal yang perlu diperhatikan adalah: a. Kebutuhan waktu eksekusi b. Penanganan kesalahan c. Penanganan kode

Metode parsing dapat dilakukan secara top down atau bottom up, dimana untai masukan akan dibaca (scan) dari arah kiri ke kanan. Metode parsing top down Membangun pohon parse dari puncak pohon (root) menuju ke daun (leaf). Penelusuran dilakukan dari simbol awal sampai dengan simbol terminal. Metode parsing top down dapat dilakukan menggunakan proses: a. backtrack (dikerjakan secara brute force) b. no backtrack (dikerjakan secara recursive descent parser) Proses backtrack: proses ini dilakukan seandainya pada saat mengerjakan suatu langkah x menyebabkan kesalahan, maka akan melakukan proses backtrack yaitu proses kembali ke kondisi terakhir sebelum langkah x dikerjakan. Proses brute force: mencoba semua kemungkinan secara terstruktur. Kelemahan proses brute force adalah relatif membutuhkan waktu yang lama karena mencoba semua aturan produksi yang ada, dan membutuhkan alokasi memori yang besar untuk mencatat lokasi proses, sehingga dimungkinkan untuk melakukan proses backtrack.

Metode parsing bottom up Pohon parse dibangun dari daun (leaf) menuju ke puncak pohon (root). Penelusuran dilakukan dari simbol terminal menuju ke simbol awal. Kebalikan dari metode parsing top down. Metode parsing bottom up dapat dilakukan menggunakan proses: a. shift reduce parsing b. operator precedence parsing c. simple precedence grammars parsing d. LR grammars parsing

Daftar pustaka
1. Teknik Kompilasi, edisi kedua, Firrar Utdirartatmo, Penerbit Graha Ilmu, Yogyakarta, 2005. 2. Teori Bahasa, Otomata, dan Komputasi serta terapannya, Bambang Hariyanto, Penerbit Informatika, Bandung, 2004.