tekom ke-3
TRANSCRIPT
-
8/18/2019 TEKOM Ke-3
1/6
BOTTOM UP PARSING
Operator Procedure Parser
Merupakan proses menafsirkan sebuah operator akan dikerjakan terlebih dahulu
atau dikerjakan setelahnya.
Operator Grammar
Digunakan untuk membandingkan level dari satu operator dengan operator lainnya.
Contoh pada matematika, jika diketahui persamaan a+b/c, maka operator “/ akan
dikerjakan terlebih dajulu kemudian diikuti dengan operator “+.
Disini terlihat maka level operator / lebih tinggi dari +.
Maka untuk menentukan sebuah operator grammar dengan menggunakan sebuah
!perator "recedence "arsing, yaitu #
$ata %ahasa yang memiliki sifat yang produksinya pada sisi kanan tidak memiliki ɛ
atau dua nonterminal yang bersebelahan / berturut&turut.
'rammar yang termasuk !perator
grammar
E → E + E | E * E | ( E ) | id
'rammar yang bukan operator grammar
E → E A E | ( E ) | - E | id
A → + | - | * | / | ^
(lgoritma membuat tabel !perator "recedence "arsing #
). %uatlah tabel M*i,j dimana adalah operator
-. %andingkan dan j #
a. apabila keduanya memiliki input yang sama yaitu berupa string atau , maka
tidak dapat dibandingkan.
b. (pabila operator yang dibandingkan adalah #
+ dengan + maka berikan tanda “0
http://compilerdesigndetails.blogspot.com/2012/02/operator-precedence-parsing.htmlhttp://compilerdesigndetails.blogspot.com/2012/02/operator-precedence-parsing.htmlhttp://compilerdesigndetails.blogspot.com/2012/02/operator-precedence-parsing.htmlhttp://compilerdesigndetails.blogspot.com/2012/02/operator-precedence-parsing.html
-
8/18/2019 TEKOM Ke-3
2/6
+ dengan 1 maka berikan tanda “2
+ dengan maka berikan tanda “ 0
3tring dengan + maka berikan tanda “04
Dimana string merupakan operator paling tinggi dan operator paling rendah
(lgoritma bottom up dengan operator precedence #
). %entuk kedalam pita stack
-. %andingkan input i,j
a. apabila menghasilkan tanda “2 maka input tersebut di push/ tambahkan
ke dalam stack
b. apabila menghasilkan tanda“0 maka input tersebut di pop/ mengambil
dari stack
5. kerjakan langkah - hingga input berakhir, dan apabila mencapai struktur
teratas / produksi kiri maka proses berhasil/ diterima/ accept
Contoh #
E → E + E | E * E | ( E ) | id
Dengan string # “ id+id1id
Maka tabel M*i,j yang terbentuk #
Hubungan operator pada tabel perbandingan :
http://4.bp.blogspot.com/-i4KvOj_E1bo/TztCVNymgPI/AAAAAAAAAHo/ovDOknD6Omg/s1600/ss6.JPG
-
8/18/2019 TEKOM Ke-3
3/6
Digunakan untuk menentukan urutan level operator paling tinggi dan terendah.
Menggunakan persamaan fungsi.
). $entukan dahulu fungsi berdasarkan kolom dan baris
-. %andingkan dua fungsi, apabila fungsi pertama lebih besar dari fungus
kedua, maka fungsi dua menuju fungsi satu.
Contoh #
grafik yang merepresentasikan fungsi precedence #
Digambarkan #
gid6f16g16f16g+6f
fid6g16f+6g+6f
http://2.bp.blogspot.com/-_4VQ09EgVrM/TztCZaFJkuI/AAAAAAAAAHw/v979Z-8dai0/s1600/ss7.JPG
-
8/18/2019 TEKOM Ke-3
4/6
sehingga didapat prioritas operator dari tertinggi hingga ke rendah adalah #
id + 1
f 7 - 7 8
g 9 ) 5 8Maka urutan tertinggi untuk 1 dan + adalah f1 bernilai 7 lebih besar dari g+ bernilai ),
sehingga 1 operator tertinggi dari +.
R !"# PARS$R
3ebuah produksi disebut :; yang dipilih dan jika ? dan @ adalah dua
symbol string maka (6?.@.
-
8/18/2019 TEKOM Ke-3
5/6
-
8/18/2019 TEKOM Ke-3
6/6
$abel :;