Kamis, 17 September 2015

hanya tester

Semangat cari ilmu dunia harus,tapi ilmu agama yg utama dan wajib.. (Semangat semster 7)

Kamis, 29 Januari 2015

TOKENIZING & PARSE TREE TEKNIK KOMPILASI

Nama : Asep dadan Nim : - Kelas : M1 (Malam) Semester : V (Lima) M_Kul : Teknik Kompilasi Dosen : Didin Maryadi, S. Pd Soal Latihan : If A >= B then Y := A / B * C – D + E Else Y := A * B – C + D / E; Pertanyaan : Bagaimana Penguraian ke dalam bentuk Token (tokenizing) ? Gambarkan Parse tree untuk intruksi baris ke 2 ? Tuliskan hasil dari Three Adress Code pada instruksi baris ke 2 ? Tuliskan Hasil dari Three Adress Code yang telah di optimisasi dari Intruksi baris ke 2 ? Tuliskan hasil dari Code Generation untuk instruksi baris ke 2 ke dalam bahasa assembly dengan bantuan instruksi : MOV untuk memasukkan nilai ke register ADD untuk menambahkan nilai ke register. SUB untuk mengurangi nilai ke register MUL untuk mengalikan nilai ke register DIV untuk membagi nilai ke register STO untuk mengisikan hasil perhirungan nilai ke register JAWABAN: Penguraian ke dalam bentuk token disebut TOKENIZING ? Indentifier : If, Then, Else Constants : A B C D E Y Operator : :=, / * - + >= Puctuation : ; Brackets : [ , ] Gambar Parse tree untuk intruksi baris ke 2 ? Y := A * B – C + D / E; Dimana: Id1 :=id2 * d3 – d4 + d5 / d6; S Id1 := E ; * - + / d2 d3 d4 d5 d6 hasil dari Three Adress Code pada instruksi baris ke 2 ? Y := A * B – C + D / E; Jawab: T1:= A + B -C T2:= T1 + D / E; X := T2 Tuliskan Hasil dari Three Adress Code yang telah di optimisasi dari Intruksi baris ke 2 ? Jawab: Instruksi ke 2 dapat diringkas (dioptimalkan) menjadi : X := T1 + D / E Tuliskan hasil dari Code Generation untuk instruksi baris ke 2 ke dalam bahasa assembly dengan bantuan instruksi ? MOV untuk memasukkan nilai ke register ADD untuk menambahkan nilai ke register. SUB untuk mengurangi nilai ke register MUL untuk mengalikan nilai ke register DIV untuk membagi nilai ke register STO untuk mengisikan hasil perhirungan nilai ke register Y := A * B – C + D / E; Jawab: MOV = untuk memasukkan nilai ke register Y := A * B – C + D / E; ADD = Add untuk menambahkan C+D SUB = Sub untuk mengurangi B - C MUL = Mull untuk mengalikan A * B DIV = Div untuk membagi D / E STO = Hasil perhitungan nilai ke register Y