MATERI PERKULIAHAN TEKNIK KOMPILASI ANALISIS SINTAKSIS Bottomup Parser
MATERI PERKULIAHAN TEKNIK KOMPILASI ANALISIS SINTAKSIS / Bottom-up Parser 6 Ken Kinanti Purnamasari
Top Down Grammar <E> : : = <E> + <T> <E> : : = <T> * <F> <T> : : = <F> : : = ( <E> ) <F> : : = id Maka, untuk string id * id + id ? <E> + <T> <F> <T> * <F> id id <T> id
Bottom Up Grammar <E> : : = <E> + <T> <E> : : = <T> * <F> <T> : : = <F> : : = ( <E> ) <F> : : = id Maka, untuk string id * id + id ? <E> <T> <T> <F> id <F> * id <F> + id
LR (1) LEFT Pemeriksaan string dimulai dari KIRI ke kanan RIGHT Jika ada 2 atau lebih simbol nonterminal, penurunan dimulai dari nonterminal paling KANAN. 1 melihat 1 simbol
Shift & Reduce SHIFT Geser satu terminal ABC|xyz REDUCE => A B C x | y z Lakukan Inverse Production Dengan aturan A xy , maka Cbxy|ijk => Cb. A|ijk
Grammar -> Tabel Parsing Grammar <S> : : = <C> <C> : : = c <C> : : = d STATE i 0 i 1 i 2 i 3 i 4 i 5 i 6 i 7 i 8 i 9 c s 3 d s 4 $ <S> 1 <C> 2 ACC s 6 s 7 5 s 3 r 3 s 4 r 3 8 r 1 s 6 s 7 9 r 3 r 2 r 2
Penurunan INPUT STRING : cdd STACK 0 0 c 3 d 4 0 c 3 <C> 8 0 <C> 2 d 7 0 <C> 2 <C> 5 0 <S> 1 STRING cdd$ d$ $ ACTION s 3 s 4 r 3 r 2 s 7 r 3 r 1 ACC
Latihan Buatlah penurunan LR(1) dengan grammar sebelumnya, untuk input : a) cd b) cccd c) cdcd d) cdc
Tugas Kelompok Buatlah contoh program parser LR(1) untuk kasus sederhana!
REFERENSI. . . Firrar U. , Teknik Kompilasi, J&J Learning Yogyakarta, 2001 Alfred v. a. & ullman J. D. , Compilers Principles Technique and Tools, Addison Wesley, 1988
- Slides: 11