Kompilasi13 ka p

13
UNIVERSITAS GUNADARMA SK No. 92 / Dikti / Kep / 1996 Fakultas Ilmu Komputer, Teknologi Industri, Ekonomi, Teknik Sipil & Perencanaan, Psikologi, Sastra SOAL UJIAN AKHIR SEMESTER Mata Kuliah : P. Teknik Kompilasi (IT- 011318) Tanggal : 16 Juli 2013 Fakultas : ILKOM Waktu : 90 menit Jenjang /Jurusan : S1/SI Dosen : - Tingakat/ Kelas : 3KA01-21,24- 33, 35 Sifat Ujian : Tutup Buku Semester/ Tahun : ATA 2012/2013 Jumlah soal : 35 pilihan ganda Pilih jawaban yang paling benar diantara jawaban a, b, c atau d 1. Di dalam proses kompilasi, Semantik Analisis termasuk kedalam tahapan . . . . a. Sintesis c. Back end b. Front end d. Parser 2. Fungsi dari Analisis Semantik adalah . . . . a. Memecahkan program sumber menjadi besaran leksikal/token b. Membangkitkan kode antara c. Memperkecil hasil dan mempercepat proses d. Menyimpan semua informasi yang berhubungan dengan proses kompilasi 3. Hasil dari tahapan analisis pada Semantik Analisis adalah . . . . a. Token c. Parsing b. Intermediate Code d. Tabel Simbol 4. Kegunaan dari Intermediate Code adalah kecuali . . . .

description

 

Transcript of Kompilasi13 ka p

Page 1: Kompilasi13 ka p

UNIVERSITAS GUNADARMA

SK No. 92 / Dikti / Kep / 1996Fakultas Ilmu Komputer, Teknologi Industri, Ekonomi,Teknik Sipil & Perencanaan, Psikologi, Sastra

SOAL UJIAN AKHIR SEMESTERMata Kuliah : P. Teknik Kompilasi

(IT-011318)Tanggal : 16 Juli 2013

Fakultas : ILKOM Waktu : 90 menitJenjang /Jurusan : S1/SI Dosen : -Tingakat/Kelas : 3KA01-21,24-33, 35 Sifat Ujian : Tutup BukuSemester/Tahun : ATA 2012/2013 Jumlah soal : 35 pilihan ganda

Pilih jawaban yang paling benar diantara jawaban a, b, c atau d

1. Di dalam proses kompilasi, Semantik Analisis termasuk kedalam tahapan . . . .a. Sintesis c. Back endb. Front end d. Parser

2. Fungsi dari Analisis Semantik adalah . . . .a. Memecahkan program sumber menjadi besaran leksikal/tokenb. Membangkitkan kode antarac. Memperkecil hasil dan mempercepat prosesd. Menyimpan semua informasi yang berhubungan dengan proses kompilasi

3. Hasil dari tahapan analisis pada Semantik Analisis adalah . . . .a. Token c. Parsingb. Intermediate Code d. Tabel Simbol

4. Kegunaan dari Intermediate Code adalah kecuali . . . .a. Melakukan pemeriksaan terhadap kesesuaian tipe dalam statement-

statement yang ada b. Intermediate Code lebih mudah dipahami dari pada kode assembly atau kode

mesinc. Strategi optimisasi lebih mudah dilakukan pada Intermediate Code daripada

pada program sumber dan kode mesind. Intermediate Code yang dihasilkan dapat digunakan lagi pada mesin lainnya

5. Macam-macam Intermediate Code kecuali . . . .a. Notasi Postfix c. Notasi N-Tupleb. Syntax Tree d. Notasi Token

Page 2: Kompilasi13 ka p

6. Berdasarkan ekspresi di bawah ini, maka notasi postfix-nya adalah . . . .(a+b)*c

a. (a+b)c* c. *cab+b. (ab+)c* d. ab+c*

7. Fungsi dari Analisis Semantik adalah . . . .a. Memecahkan program sumber menjadi besaran leksikal/tokenb. Memperkecil hasil dan mempercepat prosesc. Membangkitkan kode antara d. Menyimpan semua informasi yang berhubungan dengan proses kompilasi

8. Hasil dari tahapan analisis pada Semantik Analisis adalah . . . .a. Parsing c. Intermediate Code b. Token d. Tabel Simbol

9. Kegunaan dari Intermediate Code adalah kecuali . . . .a. Intermediate Code yang dihasilkan dapat digunakan lagi pada mesin lainnyab. Melakukan pemeriksaan terhadap kesesuaian tipe dalam statement-

statement yang ada c. Strategi optimisasi lebih mudah dilakukan pada Intermediate Code daripada

pada program sumber dan kode mesind. Intermediate Code lebih mudah dipahami dari pada kode assembly atau kode

mesin

10. Macam-macam Intermediate Code kecuali . . . .a. Notasi Postfix c. Notasi N-Tupleb. Notasi Token d. Syntax Tree

11. Berdasarkan ekspresi di bawah ini, maka notasi postfix-nya adalah . . . .(a+b)*c

a. (a+b)c* c. ab+c*b. (ab+)c* d. *cab+

12. Perhatikan potongan program di bawah ini !

If a>b then a:=5else b:=10

Maka notasi postfix-nya adalah . . . .

Page 3: Kompilasi13 ka p

a. (1) > b. (1) a c. (1) > d. (1) a(2) b (2) > (2) a (2) b(3) a (3) b (3) b (3) >(4) goto 11 (4) 13 (4) BZ (4) goto 11(5) BZ (5) a (5) goto 11 (5) BZ(6) := (6) := (6) a (6) a(7) 5 (7) 5 (7) 5 (7) 5(8) a (8) BR (8) := (8) :=(9) goto 14 (9) 8 (9) BR (9) goto 14(10) BR (10) b (10) b (10) BR

(11) := (11) := (11) goto 14 (11) b(12) 10 (12) 10 (12) := (12) 10(13) b (13) BZ (13) 10 (13) :=(14) (14) (14) (14)

13. Di dalam notasi postfix jika potongan program percabangan berada pada kondisi yang salah, maka akan diberikan ekspresi . . . .a. BZ c. BSb. BR d. BX

14. Di dalam Intermediate Code bila baris instruksi yang ada terdiri lebih dari 1 tuple maka dapat diselesaikan dengan menggunakan notasi berikut kecuali . . . .a. N-Tuple c. Triple Notationb. Notasi Postfix d. Quadruples Notation

15. Bila diberikan ekspresi seperti berikut !WHILE <eks> DO <statement>

Maka bila diubah kedalam notasi postfix menjadi . . . .a. <eks> <label 1> BZ <statement> <label 2> BR b. <label 1> <eks> BR <label 2> <statement> BZc. <label 1> BZ <eks> BR <label 2> <statmenent>d. <statmenent> BR <eks> <label 1> BZ <label 2> <statement>

16. Perhatikan statement berikut ini !

z1 := b * cz2 := a + z1x := z2

Page 4: Kompilasi13 ka p

Jika statement diatas diubah menjadi kode antara dalam bentuk Triples Notation menjadi . . . .

a. (1) LDA b c. (1) :=, *, a, b, z1(2) MUL c (2) BZ(3) STO z1 (3) :=, +, a, z1, z2(4) LDA a (4) BR(5) ADD z1 (5) :=, x, z2(6) STO z2(7) LDA z2(8) STO x

b. (1) *, b, c, T1 d. (1) *, b, c (2) +, a, T1, T2 (2) +, a, (1) (3) :=, T1, T2, x (3) :=, x, (2)

17. Perhatikan statement berikut ini !A := B*C+D-E/F*G

Jika statement diatas diubah menjadi kode antara dalam bentuk Quadruples Notation akan menjadi . . . .

a. (1) *, B, C, T1 c. (1) *, B, C, T1(2) +, C, D, T2 (2) *, F, G, T2(3) -, D, E, T3 (3) /, E, T2, T3(4) /, E, F, T4 (4) +, T1, D, T4(5) *, F, G, T5 (5) -, T4, T3, A

b. (1) *, F, G, T1 d. (1) *, B, C, T1(2) *, B, C, T2 (2) /, E, F, T2(3) /, E, F, T3 (3) *, T2, G, T3(4) +, C, D, T4 (4) +, C, D, T4(5) -, T4, T3, A (5) -, T4, T2, A

18. Diketahui tata bahasa G_3 berikut aturan semantiknya untuk pengecekan tipe variabel yang dipakai dalam suatu program.

D → T L {L.in := T.type;}T → int {T.type := integer;}T → real {T.type := real;}L→ L1 ‘,’ id {L1.in:=L.in; addtype(id.entry, L.in);}L → id {addtype(id.entry, L.in);}

Aturan sematik berikut adalah aturan semantik dengan pendekatan yang disebut sebagai:

Page 5: Kompilasi13 ka p

a. Recursive descentb. Translation schemec. Syntax directed translation d. Shift reducing

19. Annotated parse tree untuk kalimat input:int a,b

berdasarkan tata bahasa G-3 dengan aturan semantik sebagaimana pada soal no.18 adalah sebagai berikut:

a. Tree

b. tree

c. tree

D

L

‘,’L b

int

a

T

T.type = int

D

L.in = addtype()

‘,’L.in = int; b

int

a

T

D

L

‘,’L b

int a

Page 6: Kompilasi13 ka p

d. Tree

20. Dependency graph untuk kalimat input int a, b adalah sebagai berikut:a. Graf

b. Graf

c. a dan b benar

T.type L.in = int;

L.in = int; b

a

int addtype()

addtype()

D

L

‘,’L bint

a

T

T.type = int

D

L.in = int; addtype()

‘,’L.in = int; addtype() b

int

a

Page 7: Kompilasi13 ka p

d. a dan b salah

21. Diketahui tata bahasa G_3 berikut aturan semantiknya untuk maksud yang sama sebagaimana pada soal no.18, namun ditulis dengan translation scheme, maka aturan yang benar adalah:a. Aturan semantik

(a) D → T L {L.in := T.type;}(b) T → int {T.type := integer;}(c) T → real {T.type := real;}(d) L→ L1 ‘,’ id {L1.in:=L.in; addtype(id.entry, L.in);}(e) L → id {addtype(id.entry, L.in);}

b. Aturan semantik(a) D → TL {L.in := T.type; {T.type := integer;} {T.type :=

real;}}(b) T → int (c) T → real (d) L→ L1 ‘,’ {L1.in:=L.in} id {addtype(id.entry, L.in);}(e) L → id {addtype(id.entry, L.in);}

c. Aturan semantik(a) D → T{T.type := integer;} {T.type := real;} L {L.in :=

T.type;}(b) T → int (c) T → real (d) L→ L1 ‘,’ {L1.in:=L.in} id {addtype(id.entry, L.in);}(e) L → id {addtype(id.entry, L.in);}

d. Aturan semantik(a) D → TL {L.in := T.type;}(b) T → int {T.type := integer;}(c) T → real {T.type := real;}(d) L→ L1 ‘,’ {L1.in:=L.in} id {addtype(id.entry, L.in);}(e) L → id {addtype(id.entry, L.in);}

22. Perhatikan cuplikan program berikut:

A := B + 10 * 4; ..... (1)C := B + D; ...... (2)F : = B + D – G; ...... (3)FOR I := 1 to 100 DO ...... (4)BEGINX := X + I; ...... (5)A : = A + 1; ...... (6)B : = 7; ...... (7)END;

Statement no (1) dapat dioptimasi secara lokal dengan cara :a. Loop Rolling

Page 8: Kompilasi13 ka p

b. Redundant-Subexpression Eliminationc. Folding d. Frequency Reduction

23. Perhatikan cuplikan program berikut:

A := B + 10 * 4; ..... (1)C := B + D; ...... (2)F : = B + D – G; ...... (3)FOR I := 1 to 100 DO ...... (4)BEGINX := X + I; ...... (5)A : = A + 1; ...... (6)B : = 7; ...... (7)END;

Statement no (2) dan (3) dapat dioptimasi secara lokal dengan cara :a. Folding b. Redundant-Subexpression Elimination c. Loop Rollingd. Frequency Reduction

24. Perhatikan cuplikan program berikut:

A := B + 10 * 4; ..... (1)C := B + D; ....... (2)F : = B + D – G; ....... (3)FOR I := 1 to 100 DO ...... (4)BEGINX := X + I; ....... (5)A : = A + 1; ....... (6)B : = 7; ....... (7)END;

Statement no (6) dapat dioptimasi secara lokal dengan cara :a. Redundant-Subexpression Elimination b. Strength Reduction c. Loop Rollingd. Frequency Reduction

25. Perhatikan cuplikan program berikut:

A := B + 10 * 4; ...... (1)C := B + D; ....... (2)F : = B + D – G; ....... (3)FOR I := 1 to 100 DO ...... (4)

Page 9: Kompilasi13 ka p

BEGINX := X + I; ....... (5)A : = A + 1; ....... (6)B : = 7; ....... (7)END;

Statement no (7) dapat dioptimasi secara lokal dengan cara :a. Strength Reductionb. Frequency Reduction c. Loop Rollingd. Redundant-Subexpression Elimination

26. Berikut ini proses-proses yang dilakukan saat pernyataan sebuah iterasi teridentifikasi dalam program sehubungan dengan optimalisasi program, kecuali:a. Perubahan nilai pada variabel loop harus selalu dijaga.b. Perlu dilakukan inisialisasi pada variabel loop c. Dilakukan pengujian terhadap variabel loop apakah sudah mencapai kondisi

terminasid. Adjustment yaitu penambahan atau pengurangan nilai pada variabel loop

27. Diketahui sebuah cuplikan program berikut :

J := 7;IF J < 5 THENK : = K -1;

Pada optimasi Global ini disebut :a. Unreachable code b. Unused Parameterc. Unused Variable d. Variable tanpa nilai awal

28. Berikut ini kegunaan Tabel Informasi pada model kompilasi, kecuali:a. Mempermudah pembuatan dan implementasi dari semantic analyzerb. Untuk membantu pemeriksaan kebenaran semantik dari program sumberc. Untuk membantu dan mempermudah dalam pembuatan intermediate code dan

proses pembangkitan kode.d. Membantu dalam melakukan pemilahan statement program ke dalam

bentuk token-token

29. Tabel informasi atau tabel simbol dibuat pada saat tahap berikut: a. Pembangkitan Kodeb. Analisis Semantikc. Analisis Sintaksis d. Analisis Leksikal

Page 10: Kompilasi13 ka p

30. Field dalam Tabel Identifier yang menunjukkan informasi obyektif berupa prosedur, fungsi, tipe, variabel atau konstanta adalah:a. Nama Identifierb. Tipe dari Identifierc. Level Identifierd. Jenis dari Identifier

31. Karakter-karakter yang merupakan konstanta merupakan elemen dalam tabel berikut:a. Tabel Realb. Tabel Displayc. Tabel String d. Tabel Array

32. Pengisian tabel display dilakukan dengan konsep berikut:a. Arrayb. Parsing c. Grammard. Stack

33. Berikut ini merupakan tabel-tabel yang digunakan saat mencari kelengkapan informasi suatu identifier, kecuali:a. Tabel Identifier b. Tabel Stringc. Tabel Reald. Tabel Array

34. Diketahui himpunan produksi sbb:S → aS S → aB B → bC C → aC C → aHimpunan produksi di atas akan menghasilkan bahasa :

a. { | n,m >=1} c. { | n,m >=1}

b. { | n,m >=1} d. { | n,m >=1}

35. Jika di ketahui state diagram sebagai berikut :

String yang dapat di terima (accept) adalah : a. 10011110 c. 00110101

Page 11: Kompilasi13 ka p

b. 1010011 d. 1110011