Analisis Sintaksis By Kustanto S T M Eng
Analisis Sintaksis By: Kustanto, S. T. , M. Eng
Syntax Analyzer / Analisis Sintaksis v Pengelompokan token-token kedalam class syntax (bentuk syntax), seperti procedure, Statement dan expression v Grammar : sekumpulan aturan-aturan, untuk mendefinisikan bahasa sumber v Grammar dipakai oleh syntax analyser untuk menentukan struktur dari program sumber v Proses pen-deteksian-nya (pengenalan token) disebut dengan parsing 3/10/2021 Sintax Analyser 2 Adaptif
Analisis Sintaksis 3/10/2021 Sintax Analyser 3 Adaptif
Analisis Sintaksis v. Maka Syntax analyser sering disebut dengan Parser atau parsingparser v. Pohon sintaks yang dihasilkan digunakan untuk semantics analyser yang bertugas untuk menentukan ‘maksud’ dari program sumber. v. Misalnya operator penjumlahan maka semantics analyser akan mengambil aksi apa yang harus dilakukan 3/10/2021 Sintax Analyser 4 Adaptif
Contoh n Terdapat statement : ( A + B ) * ( C + D ) n Akan menghasilkan bentuk sintaksis: <factor>, <term> & <expression> 3/10/2021 Sintax Analyser 5 Adaptif
3/10/2021 Sintax Analyser 6 Adaptif
Pohon Sintaks (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) 3/10/2021 Adaptif
Proses Penurunan (Parsing) v Proses penurunan (atau parsing) bisa dilakukan antara lain dengan cara: a. penurunan melalui arah kiri (leftmost deriva tion): simbol variabel terkiri yang diperluas lebih dulu. b. penurunan melalui arah kanan (rightmost derivation): simbol variabel terkanan yang diperluas lebih dulu. 3/10/2021 Adaptif
Parsing atau Proses Penurunan kiri : S => a. AS 3/10/2021 Penurunan kanan : S => a. AS => a. Sb. AS => a. Aa => aab. AS => a. Sb. Aa => aaabba. S => a. Sbbaa => aabbaa Sintax Analyser 9 Adaptif
Contoh v Tata bahasa bebas konteks memiliki aturan produksi: S AB {S menurunkan variabel A B} A a. A | a {A menurunkan terminal a variabel A atau terminal a} B b. B | b {B menurunkan terminal b variabel B atau terminal b} 3/10/2021 Adaptif
Pohon Penurunan untuk untai “aabbb’ v Berikut ini adalah gambar pohon penurunan untuk memperoleh untai ‘aabbb’ S v S AB v A a. A | a v B b. B | b A a B A a b B b 3/10/2021 Adaptif
Latihan 1 v Diketahui tata bahasa bebas konteks (CFG, context free grammar) memiliki aturan produksi sebagai berikut: v S a. AS | a v A Sb. A | ba v Gambarkan pohon penurunan untuk memperoleh untai ‘aabbaa’ 3/10/2021 Adaptif
Jawaban latihan 1 v Gambarkan pohon penurunan untuk untai ’aabbaa’ adalah sebagai berikut: 3/10/2021 Adaptif
Jawaban Latihan 1 v Cara dengan penurunan terkiri: S a. AS | a A Sb. A | ba 3/10/2021 Adaptif
Jawaban Latihan 1 v Cara dengan arah penurunan terkanan: S a. AS | a A Sb. A | ba 3/10/2021 Adaptif
Latihan 2 v Diketahui tata bahasa bebas konteks memiliki aturan produksi: v S a. B | b. A v A a | a. S | b. AA v B b | b. S | a. BB v Gambarkan pohon penurunan untuk untai ’aaabbabbba’ 3/10/2021 Adaptif
Latihan 3 v Diketahui tata bahasa bebas konteks memiliki aturan produksi: v S a. B | b. A v A b | b. S | a. BB v B a | a. S | b. AA v Gambarkan pohon penurunan untuk untai ’baaaabbbbb’ 3/10/2021 Adaptif
Parsing v Parsing adalah konsturksi atau pembentukan Pohon Sintaks untuk suatu kalimat (ekspresi) v Bila terdapat lebih dari satu pohon sintaks untuk sebuah grammar maka dikatakan grammar tersebut Ambiguous. v Dua cara melakukan validitas sintaks dengan parsing : § TOP DOWN Parsing : melakukan derivasi string dari NT § BOTTOM UP Parsing : melakukan reduksi simbol ke NT 3/10/2021 Materi ke 3 Teori Bahasa & 18 Adaptif
Parsing Top Down v Jika adalah input string, maka derivasi dari Top Down Parse dapat ditunjukkan sebagai berikut : S … … … v Parse Tree untuk Top Down Parsing selalu dimulai dari sebelah kiri 1 2 t 3/10/2021 NT 11 S NT 12 ……. NT 1 n 3 NT 21 Materi ke 3 Teori Bahasa & 19 Adaptif
Parsing Top Down (cont. ) Contoh : Parsing Top Down untuk identifier x 2 Derivasinya : <identifier><digit> <letter><digit> x 2 a. <identifier> b <identifier> c <identifier> <digit> <identifier> e <identifier> <digit> <letter> 3/10/2021 d <identifier> <letter> x x Materi ke 3 Teori Bahasa & 20 Adaptif <digit> 2
Parsing Top Down (cont. ) Contoh : ekspresi a + b * c grammar : E : : = T + E | T T : : = V * E | V V : : = <id> Prediction Sentential Form E T+E T V V <id> E T T V*T V <id> T V V <id> T+E V+E <id>+T <id>+V*T <id>+<id>*V <id>+<id>*<id> 3/10/2021 Materi ke 3 Teori Bahasa & E T + E V id T V * id T V id 21 Adaptif
Parsing Bottom Up v Parsing Bottom Up membangun pohon sintaks melalui urutan simbol yang direduksi, atau dimulai dengan sebuah string hingga mencapai simbol start Grammar v Contoh : diketahui identifier x 2, dengan parsing bottom up menjadi : <identifier> <letter> x 2 x x 2 <letter>2 a b 3/10/2021 <letter> <digit> <letter> 2 x <identifier> 2 <identifier>2 x <letter> <digit> x 2 2 <identifier><digit> <identifier> c Materi ke 3 Teori Bahasa & d e 22 Adaptif
Parsing Dengan Bruto Forse v Metode ini akan memilih aturan produk mulai dari paling kiri, dan melakukan expand semua non terminal pada aturan produksi sampai yang tertinggal adalah simbol terminal 3/10/2021 Adaptif
Contoh v S a. Ad | a. B v. A b|c v B ccd | ddc v Misalkan ingin dilakukan parsing untuk string: “accd”, Tahapan yang terjadi adalah sebagai berikut: 3/10/2021 Adaptif
Jawaban (i) S (ii) S a A (iii) d a S A d b Terjadi kegagalan (iii), dilakukan back track (iv) S a A (v) d S a (vi) B c S a B c c Terjadi kegagalan lagi (iv), dilakukan back-track 3/10/2021 Sintax Analyser 25 Adaptif d
Terimakasih 3/10/2021 Adaptif
- Slides: 26