190 likes | 369 Views
Program Subjek. Program Objek. ANALISIS. SINTESIS. Penganalisis Leksikal (Scanner). Penganalisis Sintaks (Parser). Penganalisis Semantik. Pembentuk Kode. Pengoptimal Kode. TABEL. Komponen sebuah Kompilator. Scanning.
E N D
Program Subjek Program Objek ANALISIS SINTESIS Penganalisis Leksikal (Scanner) Penganalisis Sintaks (Parser) Penganalisis Semantik Pembentuk Kode Pengoptimal Kode TABEL Komponen sebuah Kompilator
Scanning • Scanning termasuk ke dalam analisis lexical, yaitu proses untuk mengidentifikasi satuan terkecil dari Bahasa, yang disebut Token / Terminal / Daun (identifier, keyword,label, operator aritmetika dan assignment, operator relasional, tanda baca, dsb) • Aspek dalam Scanner : • Bagaimana bentuk dan penyajian Token. Metode yang digunakan Grammar Regular dan Ekspresi Regular • Pengenalan Token. Metode yang digunakan Automata Hingga, dengan penyajian menggunakan Diagram Transisi
Scanning (cont.) • Scanner berinteraksi dengan Parser, dengan cara : • Scanner mengolah Program Source secara terpisah sebagai satu fase, dimana token disimpan dalam sebuah tabel sebelum Parser bekerja • Scanner berinteraksi denga Parser, dimana scanner dipanggil oleh parser bila token dalam program source diperlukan
Automata Hingga (AH) • Automata Hinga (AH) / Finite state Automaton (FA) adalah suatu struktur abstrak yang didefinisikan, terdiri dari : • Himpunan Hingga A berisi simbol Input • Himpunan Hingga S berisi State (internal state) • Himpunan Hingga Z berisi simbol output • Sebuah fungsi f: S x Z S, disebut fungsi next state • Sebuah fungsi g: S x A Z, disebut fungsi output • AH berhubungan dengan Regular Grammar • Jenis AH : • AH Determinstik (AHD) • AH Non Deterministik (AHN) • AHN dengan transisi untai hampa
Automata Hingga Deterministik (AHD) • Automata Hinga Deterministik (AHD) didefinisikan dengan 5 tupel • Himpunan Hingga internal state (S) • Himpunan Hingga simbol input (V) • Sebuah fungsi f: S x V S ; merupakan fungsi next state • State awal (q0 S) • Himpunan hingga state penerima S • AHD sering digambarkan dengan cara : • Table Transisi State • Transisi Digraph
Automata Hingga Deterministik (AHD) (cont.) Contoh : Diketahui AHD dengan 2 simbol input dan 3 state, • V = { a,b} • S = { q0, q1, q2) • T = {q0, q1} state penerima • q0 sebagai state awal • Fungsi next state didefinisikan f:(S,V)
q2 q0 q1 Automata Hingga Deterministik (AHD) (cont.) b b a a b a • Periksalah string berikut : • aba • q0 q0 q1 q0 (diterima) • 2. aabbaa • q0 q0 q0 q1 q2 q2 q2 (ditolak, state penerima yang ditentukan adalah q0 dan q1, bukan q2)
d Start Integer OUT d delimeters Automata Hingga Deterministik (AHD) (cont.) Contoh : Identifikasi Integer String Grammar : <integer> ::= <digit> | <integer><digit> (Accept)
<letter> Start Error Identifier <letter> <digit> <digit> Automata Hingga Deterministik (AHD) (cont.) Contoh : Identifikasi Identifier String <identifier> ::= <letter>|<identifier><letter>|<identifier><digit>
Parsing • Parsing adalah konsturksi atau pembentukan Pohon Sintaks untuk suatu kalimat (ekspresi) • Bila terdapat lebih dari satu pohon sintaks untuk sebuah grammar maka dikatakan grammar tersebut Ambiguous. • Dua cara melakukan validitas sintaks dengan parsing : • TOP DOWN Parsing : melakukan derivasi string dari NT • BOTTOM UP Parsing : melakukan reduksi simbol ke NT
1 2 3 S ……. NT11 NT1n NT12 t NT21 Parsing Top Down • Jika adalah input string, maka derivasi dari Top Down Parse dapat ditunjukkan sebagai berikut : S … … … • Parse Tree untuk Top Down Parsing selalu dimulai dari sebelah kiri
<identifier> <identifier> <identifier> <identifier> <identifier> <digit> <identifier> <identifier> <identifier> <digit> <digit> <digit> 2 <letter> <letter> <letter> x x Parsing Top Down(cont.) Contoh : Parsing Top Down untuk identifier x2 Derivasinya : <identifier> <identifier><digit> <letter><digit> x <digit> x2 a. <identifier> c d e b
E T + E V T id V * T id V id Parsing Top Down(cont.) Contoh : ekspresi a + b * c grammar : E ::= T + E | T T ::= V * E | V V ::= <id>
<identifier> <identifier> <identifier> <identifier> <letter> <letter> <letter> <letter> x x x x x 2 2 2 2 2 <letter>2 <identifier><digit> x2 <identifier>2 <digit> <digit> Parsing Bottom Up • Parsing Bottom Up membangun pohon sintaks melalui urutan simbol yang direduksi, atau dimulai dengan sebuah string hingga mencapai simbol start Grammar • Contoh : diketahui identifier x2, dengan parsing bottom up menjadi : <identifier> d a b e c
Relasi Preseden dan Pemakaiannya • Teknik parsing pada metode Bottom-Up dilakukan dengan mencari berulang-ulang, handle (leftmost simple phrase) u dari bentuk sentensial saat itu dan mereduksinya menjadi suatu nonterminal U dnegan memakai reduksi U u • Jadi tujuan utamanya adalah mencari Handle dari sebuah bentuk sentensial yaitu simple phrase terkiri (leftmost) dari bentuk sentensial tersebut. • Masalah tersebut diselesaikan dengan Grammar Preseden
U ….. ……….. R S…. handle Relasi Preseden dan Pemakaiannya (cont.) Misal, R dan S berada dalam suatu grammar G. Beberapa bentuk sentensial dapat dibentuk dari simbol R dan G tersebut (…RG…..). Ada tiga kemungkinan yang timbul dalam handle yang dibuat dari R dan S. • R adalah bagian dari suatu handle tapi S tidak (R S) • dikatakan R > S (R memiliki Preseden atas S). • R harus merupakan ekor dari beberapa produksi U …R. • Karena handle berada di kiri S,maka S harus merupakan terminal
U ..…. …. …. ….. … RS.. handle U ……. …R S ……….. Relasi Preseden dan Pemakaiannya (cont.) • R dan S keduanya adalah bagian dalam suatu handle (R S) • dikatakan R dan S memiliki Preseden yang sama, dan harus direduksi secara bersamaan waktu • Harus ada suatu produksi U …RS... • S adalah bagian dari suatu handel, tetapi R tidak (S R) • dikatakan R < S • S merupakan kepala dari beberapa produksi U S….. handle
Z b M b a Relasi Preseden dan Pemakaiannya (cont.) Contoh : Diketahui, Grammar dengan simbol Start Z dan produksi : • Z bMb • M (L | a • L Ma) Berikut ini akan ditunjukkan bentuk sentensial, phon sintaks,handel dari relasi yang dapat diturunkan dari produksi. • Bentuk sentensial : bab Pohon Sintaks : Handel : a Relasi yang diberikan Pohon : b a a b
Z Z b b M M b b ( ( L L M a ) Relasi Preseden dan Pemakaiannya (cont.) • Bentuk sentensial : b(Lb Pohon Sintaks : Handel : (L Relasi yang diberikan Pohon : b ( ( L L b • Bentuk sentensial : b(Ma)b Pohon Sintaks : Handel : Ma) Relasi yang diberikan Pohon : b ( ( L L b