Istiqomah, S.Kom [Teknik Kompilasi UNIKOM 2013]

Slides:



Advertisements
Presentasi serupa
Teori Bahasa dan Automata
Advertisements

BENTUK NORMAL CHOMKY.
BENTUK NORMAL CHOMSKY Teori Bahasa dan Otomata
11. BENTUK NORMAL CHOMSKY.
Teori Bahasa dan Automata
Kuliah 03 – Pengenalan Analisa Sintak
KONSEP dan NOTASI BAHASA
CONTEXT-FREE GRAMMAR (CFG) DAN PARSING
Bentuk Normal Greibach
Normal Chomsky Pertemuan 8
Penyederhanaan Bahasa Bebas Context
Produksi yang rekursif kanan menyebabkan pohon penurunan tumbuh ke
PENGHILANGAN REKURSIF KIRI
12. PENGHILANGAN REKURSIF KIRI
Penghilangan Rekursif Kiri
TATA BAHASA BEBAS KONTEKS (CONTEXT FREE GRAMMAR)
Teori Bahasa dan Otomata 2 sks
POHON PENURUNAN.
Syntax Analyzer (Parser) - Dasar
Natural Language Processing (Pemroses Bahasa Alami)
Pohon penurunan dan Penyederhanaan Tata Bahasa Bebas Konteks
PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS
10. PENYEDERHANAAN TATA BAHASA
7. ATURAN PRODUKSI.
Analisis Leksikal.
STRUKTUR COMPILLER.
BAB X BENTUK NORMAL CHOMSKY.
CONTEXT-FREE GRAMMAR (CFG) DAN PARSING
Pengurai Prediktif & Bottom Up Parsing (penguraian bawah atas)
Penghilangan rekursif kiri
12. PENGHILANGAN REKURSIF KIRI Aturan Produksi Rekursif Aturan produksi yang rekursif adalah aturan produksi yang hasil produksinya (ruas kanan)
TEORI BAHASA & AUTOMATA
BENTUK NORMAL CHOMSKY Teori Bahasa dan Otomata CHAPTER 6
Teori-Bahasa-dan-Otomata
Teori-Bahasa-dan-Otomata
Bentuk Normal Chomsky (CNF)
PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS
TATA BAHASA BEBAS KONTEKS (CONTEXT FREE GRAMMAR)
Bahasa Type 2 (CONTEXT FREE GRAMMAR)
Bentuk Normal Chomsky, Penghilangan Rekursif kiri dan Normal Greibach
Bentuk Normal Chomsky *YANI*.
Teori-Bahasa-dan-Otomata
GRAMMER ATAU TATA BAHASA
PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS.
PENGHILANGAN REKURSIF KIRI
Bahasa Context Free.
MATERI PERKULIAHAN TEKNIK KOMPILASI
Penghilangan Bentuk Left Linear Grammer
Teori-Bahasa-dan-Otomata
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.
Penyederhanaan Tata Bahasa Bebas Konteks
MATERI PERKULIAHAN TEKNIK KOMPILASI
Penyederhanaan Tata Bahasa Bebas Konteks
MATERI PERKULIAHAN TEKNIK KOMPILASI
Pengantar Teknik Kompilasi
TEORI BAHASA & AUTOMATA
CONTEXT-FREE GRAMMAR (CFG) DAN PARSING
Analisis Sintaksis By: Kustanto, S.T., M.Eng.
Brute force 2/16/2019 Materi ke 5.
Penghilangan Rekursif Kiri
Chomsky Normal Form (CNF) / Bentuk Normal Chomsky (BNC)
CONTEXT-FREE GRAMMAR (CFG) DAN PARSING
Chomsky Normal Form (CNF) / Bentuk Normal Chomsky (BNC)
CONTEXT-FREE GRAMMAR (CFG) DAN PARSING
Transcript presentasi:

Istiqomah, S.Kom [Teknik Kompilasi UNIKOM 2013] Analisis Sintaksis Istiqomah, S.Kom [Teknik Kompilasi UNIKOM 2013]

Analisis Sintaks (Parsing) Parsing merupakan tahapan yang berguna untuk memeriksa urutan kemunculan token. Parsing adalah konstruksi atau pembentukan Pohon Sintaks untuk suatu kalimat (ekspresi). Pohon Sintaks menggambarkan bagaimana memperoleh suatu string dengan cara menurunkan simbol non-terminal (variable) menjadi simbol terminal.

Contoh 1 Misal terdapat aturan tata bahasa bebas konteks dengan aturan produksi : S  AB A  aA | a B  bB | b

Metode Parsing Top Down Metode ini melakukan penelusuran dari root/puncak menuju leaf/daun (S - T). Meliputi : Backtrack/backup (Brute Force) & No Backtrack (Recursive Descent Factor) Bottom Up Metode ini melakukan penulusuran dari leaf/daun menuju ke root/puncak. (T-S)

Parsing dengan Brute Force Metode ini memilih aturan produksi dari paling kiri Kemudian melakukan expand semua non terminal pada aturan produksi sampai yang tertinggal adalah simbol terminal. Bila terjadi kesalahan (string tidak sesuai) maka akan dilakukan backtrack. Algoritma ini membangun pohon parsing yang top down, yaitu mencoba segala kemungkinan yang ada secara satu persatu.

Contoh 2 Misal : S  aAd | aB A  b | c B  ccd | ddc Lakukan parsing untuk String ‘accd’

Contoh 3 Terdapat grammar/tata bahasa G = {V, T, S, P} V = {“E”, “T”, “F”} Simbol non-terminal T = {“i”, “*”, “/”, “+”, “-” } Simbol terminal S = “E” Simbol awal String yang diinginkan adalah i*i Tentukan aturan produksi yang bisa diterima.

Contoh 3 (lanjutan) Aturan produksi (P) yang dicobakan adalah : E  T | T + E | T – E T  F | F * T | F / T F  i diterima E  T | E + T | E – T T  F | T * F | T / F F  i diterima, walaupun rekursif kiri E  E + T | E – T | T T  F * T | F / T | F F  i tidak diterima, karena rekursif kiri menyebabkan looping.

Aturan Produksi Rekursif Aturan produksi yang memiliki ruas kanan (hasil produksi) yang memuat simbol variabel pada ruas kiri. Ada 2 macam : 1. Rekursif kanan 2. Rekursif kiri

Rekursif Kanan Aturan produksi dalam bentuk : A  A dengan  = (V  T)* atau kumpulan simbol variabel dan terminal Contoh : S  dS B  adB

Rekursif Kiri Aturan produksi dalam bentuk : A  A  dengan  = (V  T)* atau kumpulan simbol variabel dan terminal Contoh : S  Sd B  Bad

Rekursif Kiri Dalam banyak penerapan tata bahasa, rekursif kiri tak dinginkan Untuk menghindari penurunan yang bisa mengakibatkan looping, perlu dihilangkan sifat rekursif kiri dari aturan produksi.

Penghilangan Rekursif Kiri Pisahkan aturan produksi yang rekursif kiri dan tidak, misal : Rekursif kiri : A  A1 | A2 | A3 | …. | An Bukan Rekursif kiri : A  1 | 2 | 3 | …. | m Lalu tentukan 1 , 2 …. n dan 1 , 2 …. m dari setiap aturan produksi yang memiliki symbol ruas kiri yang sama. Lakukan penggantian aturan produksi yang rekursif kiri. 1. A  1Z | 2Z | …. | mZ 2. Z  1 | 2 | …. | n 3. Z  1Z | 2Z | …. | nZ Hasil akhir berupa aturan produksi ditambah dengan aturan produksi semula yang tidak rekursif kiri.

Contoh 4 Tata bahasa bebas konteks : S  Sab | aSc | dd | ff | Sbd Langkah Pengilangan rekursif kiri 1. Pisahkan Rekursif kiri : S  Sab | Sbd => 1 = ab, 2 = bd Bukan Rekursif kiri : S  aSc | dd | ff => 1 = aSc, 2 = dd, 3 = ff

Contoh 4 (lanjutan) S  aScZ | ddZ | ffZ Z  ab | bd Z  abZ | bdZ 2. Lakukan pergantian S  aScZ | ddZ | ffZ Z  ab | bd Z  abZ | bdZ 3. Hasil akhir yang didapat S  aSc | dd | ff S  aScZ | ddZ | ffZ Z  ab | bd Z  abZ | bdZ

Kelemahan Metode Brute Force Mencoba untuk semua aturan produksi yang ada sehingga menjadi lambat (rentang waktu eksekusi tidak jelas) Mengalami kesukaran untuk melakukan pembetulan kesalahan Memakan banyak memori, karena perlu mencatat (backup) lokasi backtrack Grammar yang memiliki Rekursif Kiri tidak bisa diperiksa, sehingga harus diubah dulu sehingga tidak rekursif kiri, Karena rekursif kiri akan mengalami Loop yang terus-menerus

Latihan Lakukan parsing dengan metode brute force, untuk mendapatkan string ‘adssfd’ dari : S  aAd | Ba | cd A  b | c | Bf B  aef | dss

Latihan Lakukan penghilangan rekursif kiri dari : A  Abc | cd | Afg | Ai | d