Syntax Analyzer (Parser) - Dasar

Slides:



Advertisements
Presentasi serupa
Teori Bahasa dan Automata
Advertisements

BENTUK NORMAL CHOMSKY Teori Bahasa dan Otomata
Kuliah 03 – Pengenalan Analisa Sintak
KONSEP dan NOTASI BAHASA
CONTEXT-FREE GRAMMAR (CFG) DAN PARSING
Penguraian Bawah-Atas (Bottom-up Parsing)
Teori Bahasa dan Automata
Pengantar Teknik Kompilasi
Penyederhanaan Bahasa Bebas Context
Session 11 Parse Tree, Application of Parse Tree, and Ambiguity
Pohon Urai (parse) dan Derivasi
Teori Bahasa dan Otomata 2 sks
TATA BAHASA BEBAS KONTEKS (CONTEXT FREE GRAMMAR)
TEORI BAHASA DAN OTOMATA
POHON PENURUNAN.
Natural Language Processing (Pemroses Bahasa Alami)
Pohon penurunan dan Penyederhanaan Tata Bahasa Bebas Konteks
Bahasa Pemrograman Tingkat Tinggi
Komponen sebuah Kompilator
Analisis Leksikal.
Pertemuan 12 CONTEXT FREE GRAMMAR (CFG) Lanjutan..
STRUKTUR COMPILLER.
CONTEXT-FREE GRAMMAR (CFG) DAN PARSING
CONTEXT FREE LANGUAGE Yang akan kita pelajari: Pohon Turunan
9. POHON PENURUNAN.
Pengurai Prediktif & Bottom Up Parsing (penguraian bawah atas)
CONTEXT- FREE LANGUAGE Yenni Astuti Version
Komponen sebuah Kompilator
1 Pertemuan 11 CONTEXT FREE GRAMMAR (CFG) Lanjutan.. Matakuliah: T0162/Teori Bahasa dan Automata Tahun: 2005 Versi: 1/0.
BENTUK NORMAL CHOMSKY Teori Bahasa dan Otomata CHAPTER 6
KONSEP GRAMMAR & HIRARKI CHOMSKY
Teori-Bahasa-dan-Otomata
TATA BAHASA BEBAS KONTEKS (CONTEXT FREE GRAMMAR)
By : Lisda Juliana Pangaribuan
Pengantar Teknik Kompilasi
Teori-Bahasa-dan-Otomata
GRAMMER ATAU TATA BAHASA
Sheila Nurul Huda, S.Kom, M.Cs
Bahasa Context Free.
MATERI PERKULIAHAN TEKNIK KOMPILASI
Teori-Bahasa-dan-Otomata
Pengantar Teknik Kompilasi
TATA BAHASA BEBAS KONTEKS
Analisis Sintaks (Parsing)
MATERI PERKULIAHAN TEKNIK KOMPILASI
MATERI PERKULIAHAN TEKNIK KOMPILASI
Pengantar Teknik Kompilasi
ALGORITMA & PEMROGRAMAN 1C
BAB VIII POHON PENURUNAN.
Istiqomah, S.Kom [Teknik Kompilasi UNIKOM 2013]
MATERI PERKULIAHAN TEKNIK KOMPILASI
Pengantar Teknik Kompilasi
RESPONSI TEORI BAHASA & OPERASI MATEMATIS (2)
Pertemuan 10 CONTEXT FREE GRAMMAR (CFG) Lanjutan..
Pengantar Teknik Kompilasi
TEORI BAHASA & AUTOMATA
Pengantar Teknik Kompilasi
CONTEXT-FREE GRAMMAR (CFG) DAN PARSING
Pengenalan Kompilasi & Klasifikasi Tatabahasa Formal menurut Chomsky
Pengantar Teknik Kompilasi
Analisis Sintaksis By: Kustanto, S.T., M.Eng.
Automata Hingga Deterministik (AHD)
Pengantar Teknik Kompilasi
Brute force 2/16/2019 Materi ke 5.
Grammar dan Bahasa Automata
Chomsky Normal Form (CNF) / Bentuk Normal Chomsky (BNC)
CONTEXT-FREE GRAMMAR (CFG) DAN PARSING
Pengantar Teknik Kompilasi
Chomsky Normal Form (CNF) / Bentuk Normal Chomsky (BNC)
CONTEXT-FREE GRAMMAR (CFG) DAN PARSING
Transcript presentasi:

Syntax Analyzer (Parser) - Dasar Sigit Widiyanto, ST., MMSi., MSc

Syntax Analyzer Pengelompokan token-token kedalam class syntax (bentuk syntax), seperti procedure, statement dan expression Grammar : sekumpulan aturan-aturan, untuk mendefinisikan bahasa sumber Grammar dipakai oleh syntax analyser untuk menentukan struktur dari program sumber Proses pen-deteksian-nya (pengenalan token) disebut dengan parsing

Syntax Analyzer Maka Syntax analyser sering disebut dengan parser. Pohon sintaks yang dihasilkan digunakan untuk semantics analyser yang bertugas untuk menentukan ‘maksud’ dari program sumber. Misalnya operator penjumlahan maka semantics analyser akan mengambil aksi apa yang harus dilakukan

Posisi Parser dalam Kompilator

Ketentuan dalam Parser Deretan token : dihasilkan oleh Penganalisa Leksikal (Scanner) Pohon parse : suatu pohon dimana akarnya (root) adalah simbol awal grammar (starting symbol), setiap node dalam (inner node) adalah simbol nonterminal, dan daunnya (leaf) dibaca dari kiri ke kanan adalah deretan token masukan. Pohon parse ini dibentuk berdasarkan aturan grammar yang ditetapkan untuk parser. Kesalahan sintaks : terjadi jika pola deretan token tidak memenuhi ketentuan pola yang telah ditentukan grammar untuk parser.

Hal yang Penting!!! Scanner: Regular Grammar (RG) Parser: Grammar Context Free (CFG). Bagi RG (scanner) sebuah token (kecuali reserve word) adalah sebuah kalimat dimana setiap karakter pembentuk token tersebut adalah simbol terminal. Sebaliknya bagi CFG (parser) sebuah token adalah sebuah simbol terminal dimana sederetan tertentu token akan membentuk sebuah kalimat.

Hal yang Perlu diperhatikan dalam CFG Pola umum CFG : A  , A  VN,   (VN  VT )* Analisis sintaks : Penelusuran sebuah kalimat (sentensial) sampai pada simbol awal grammar. Analisis sintaks dapat dilakukan melalui derivasi atau parsing. Penelusuran melalui parsing menghasilkan pohon sintaks.

Syntax tree Pohon sintaks/ Pohon penurunan (syntax tree/ parse tree) beguna untuk menggambarkan bagaimana memperoleh suatu string dengan cara menurunkan simbol-simbol variable menjadi simbol-simbol terminal. Misalnya: S  AB A  aA | a B  bB | B Penurunan untuk menhasilkan string aabbb

Parsing atau Proses Penurunan Parsing dapat dilakukan dengan cara : Penurunan terkiri (leftmost derivation) : simbol variable yang paling kiri diturunkan (tuntas) dahulu Penurunan terkanan (rightmost derivation): variable yang paling kanan diturunkan (tuntas) dahulu Misalkan terdapat ingin dihasilkan string aabbaa dari Context free language: S  a AS | a, A  SbA | ba

Proses Penurunan (Derivasi) Penurunan kiri : S => aAS => aSbAS => aabAS => aaabbaS => aabbaa Penurunan kanan : S => aAS => aAa => aSbAa => aSbbaa => aabbaa

Latihan Parsing Diketahui: S -> aB | bA A -> a | aS |bAA B -> b | bS | aBB Penurunan untuk string aaabbabbba Berikan solusi untuk derivasi dan analisis sintaksnya.

Solusi Misalnya: S -> aB | bA A -> a | aS |bAA B -> b | bS | aBB Penurunan untuk string aaabbabbba Dalam hal ini perlu untuk melakukan percobaan pemilihan aturan produksi yang bisa mendapatkan solusi.

Contoh Parsing Lanj. Diketahui grammar G = {I  HI HIA, H  abc...z, A  012...9} dengan I adalah simbol awal. Bagaimanakah analisa sintaks untuk kalimat x23b.

Solusi Diketahui grammar G = {I  HI HIA, H  abc...z, A  012...9} dengan I adalah simbol awal. Bagaimanakah analisa sintaks untuk kalimat x23b.

Metode Parsing Perlu memperhatikan 3 hal: Bottom-Up Waktu Eksekusi Metode ini melakukan penelusuran dari leaf ke root Penanganan Kesalahan Penanganan Kode LR(k) Presedence Parser Parsing digolongkan menjadi: Top-Down Penelusuran dari root ke leaf atau dari simbol awal ke simbol terminal metode ini meliputi: Backtrack/backup : Brute Force No backtrack : Recursive Descent Parser

S  if E then Sif E then S else S, Ambiguitas Sebuah kalimat adalah ambigu jika terdapat lebih dari satu pohon sintaks yang dapat dibentuk oleh kalimat tersebut. Secara gramatikal kalimat ambigu dihasilkan oleh grammar ambigu yaitu grammar yang mengandung beberapa produksi dengan ruas kiri yang sama sedangkan dua atau lebih ruas kanan-nya mempunyai string terkiri (prefix) yang sama. Contoh : S  if E then Sif E then S else S, Dimana S : statement dan E : expression,

Ambiguitas Lanj. Grammar ambigu dapat diperbaiki dengan metoda faktorisasi kiri (left factorization). Prefix dari produksi di atas adalah sentensial if E then S sehingga faktorisasi akan menghasilkan : S  if E then S T, T  else S { : simbol hampa}

Contoh Lain Ambiguity Diketahui grammar G = {S  SOSA , O  *+, Kalimat : 2*3+7 mempunyai dua pohon sintaks berikut :

Rekursif Kiri (Left Recursion) Sebuah grammar dikatakan bersifat rekursi kiri jika untuk sebuah simbol nonterminal A terdapat derivasi non hampa A  A. Produksi berbentuk A  A disebut produksi yang bersifat immediate left recursion.

Rekursif Kiri (Left Recursion) Rekursi kiri dapat dieliminir dengan transformasi berikut : A A transformasi menjadi A  R, R R Transformasi ini dapat diperluas sehingga : A A 1A2 ... An 1  2... n bertransformasi menjadi : A  1R2R...n R, R 1 R2 R..n R

Contoh Diketahui : E  E + T T, T  T * F  F, F  (E) I yang jelas mengandung immediate left recursion untuk simbol E dan T. Transformasi menghasilkan : E  TRE, RE  +TRE , T FRT, R *FRT , F  (E) I

Tugas Diketahui : S  Aab, A AcS d