U niversitas gunadarma sk no. 92 / Dikti / Kep / 1996


download 171.71 Kb.
jenengU niversitas gunadarma sk no. 92 / Dikti / Kep / 1996
KoleksiDokumen
t.kabeh-ngerti.com > Sastra > Dokumen

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

: Teknik Kompilasi

Tanggal

: 12 Januari 2009

Fakultas

: Teknologi Industri

Waktu

: 90 menit

Jenjang /Jurusan

: S1/TI

Dosen

: -

Tingakat/Kelas

: 4IA01 s.d. 4IA15

Sifat Ujian

: Tutup Buku

Semester/Tahun

: PTA 2008/2009

Jumlah soal

: 40 pilihan ganda



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





  1. Jika BZ adalah operator untuk meloncat ke label tertentu jika kondisi yang diuji salah (bernilai 0), BR adalah operator untuk meloncat ke label tertentu tanpa syarat, dan misalkan terdapat kode sumber berbentuk

if (x>y) then z := x else z:= y + 1

maka kode antara yang mungkin dalam bentuk triple adalah



    1. c.










opr

arg1

arg2




(1)

>

x

y




(2)

BZ

(1)

(4)




(3)

:=

z

x




(4)

BR

-

(7)




(5)

+

y

1




(6)

:=

z

(5)




(7)







































































































opr

arg1

arg2

(1)

>

x

y

(2)

BR

-

(4)

(3)

BZ

(1)

(5)

(4)

:=

z

x

(5)

+

y

z



    1. d.





opr

arg1

arg2

(1)

>

x

y

(2)

BZ

(1)

(5)

(3)

:=

z

x

(4)

BR




(7)

(5)

+

y

1

(6)

:=

z

(5)

(7)















opr

arg1

arg2

(1)

>

x

y

(2)

BZ

(1)

(5)

(3)

:=

z

x

(4)

+

y

z

(5)











  1. Sama seperti pada soal no. 1, namun yang ditanyakan adalah kode antara yang mungkin dalam bentuk postfix, adalah

    1. x y > L1 BZ

z x :=

L1: L2 BR

L2: z y 1 + :=




    1. x y > L1 BZ

z x := L2 BR

L1: z y 1 + :=

L2: …


    1. x y > (5) BZ

(4) BR

:= z x

(4): + y z

(5): …


    1. x y > L1 BZ

z x := + y z

L1: …


  1. Kode antara untuk kode sumber berbentuk

A := B + C * D / E

F := C*D

dalam bentuk triple adalah


    1. (1). *, C, D b. (1). *, C, D c. (1). *, C, D d. a, b, c benar

(2). /, (1), E (2). /, (1), E (2). /, (1), E

(3). +, B, (2) (3). +, B, A (3). +, B, (2)

(4). :=, A, (3) (4) :=, F, (1) (4). :=, A, (3)

(5). *, C, D (5). :=, F, (1)


  1. Seperti no.3 namun dalam indirect triple, maka jawaban pada no.3 mempunyai tambahan tabel yang berisi urutan eksekusi dari triple-nya sebagai berikut:

    1. 1. (1) b. 1. (1) c. 1. (1) d. 1. (1)

2. (2) 2. (2) 2. (2) 2. (2)

3. (3) 3. (3) 3. (3) 3. (3)

4. (4) 4. (1) 4. (4) 4. (4)

5. (5) 5. (4) 5. (1)

6. (5)


  1. Kode antara untuk kode sumber berbentuk

A := B + C * D / (-E)

dalam bentuk quadruple adalah



    1. (1). *, C, D, t1 c. a dan b salah

(2) u-, E, -, t2

(3). /, t1, t2, t3

(4). +, B, t3, t4

(5). :=, t4, , A


    1. (1). u-, E, -, t1 d. a dan b benar

(2). *, C, D, t2

(3). /, t2, t1, t3

(4) +, B, t3, t4

(5). :=, t4, , A
Perhatikan tata bahasa G_type = ({int, real, id, , }, {D, T, L}, D, P) dengan P = { D  T L, T  int | real, L  id , L | id} beserta semantic rules – nya sebagai berikut:
Tabel.1. Syntax directed definition untuk G_type

Aturan produksi

Semantic rules

D  T L

L.dtype = T.dtype

T  int

T.dtype = integer

T  real

T.dtype = real

L1id , L2

id.dtype = L1.dtype

L2.dtype = L1.dtype

L  id

id.dtype = L.dtype


Untuk soal no. 6 s.d. 9 , isilah simpul-simpul dari pohon parsing berikut atribut semantiknya untuk kalimat int a, b berdasarkan semantic rules diatas.



(no.7?)








id

(a)

(id.dtype = integer)

(no.8?)

L

(L.type = integer)


int




no.9


  1. Simpul (no.6?) =

    1. T dengan atribut (T.dtype = integer)

    2. int dengan atribut (integer)

    3. int

    4. L dengan atribut (L.dtype = integer)




  1. Simpul (no.7?) =

    1. T dengan atribut (T.dtype = integer)

    2. L

    3. ,

    4. L dengan atribut (Ldtype = integer)




  1. Simpul (no.8?) =

    1. T dengan atribut (T.dtype = integer)

    2. L dengan atribut (L.dtype = integer)

    3. int

    4. ,




  1. Simpul (no.8?) =

    1. T dengan atribut (T.dtype = integer)

    2. L dengan atribut (L.dtype = integer)

    3. idb dengan atribut (id.type = integer)

    4. int




  1. Tata bahasa G_type dengan syntax directed definition pada tabel-1

    1. tidak mempunyai atribut

    2. semuanya synthesized attribute

    3. semuanya inherited attribut

    4. mengandung inherited attribute (tidak semuanya inherited)


Untuk soal no.11 s.d. 15:

Perhatikan tata bahasa G_num = ({0, 1, …, 9}, {number, digit}, number, P) dengan P = { numbernumber digit | digit , digit0 | 1 | … | 9}. Syntax-directed definition untuk tata bahasa ini adalah

Tabel2. Syntax-directed definition dari tata bahasa G_num

Aturan produksi

Aturan semantik

Number1number2 digit | digit

Number1.val = number2.val *10 + digit.val

numberdigit

number.val = digit.val

digit0

digit.val = 0

digit1

digit.val = 1





digit9

digit.val = 9

Berdasarkan tabel2, isilah simpul-simpul dari pohon parsing berikut atribut semantiknya untuk kalimat 218


(no.14?)




number

(number.val = 2*10 + 1 = 21)

(no.13?)





digit

(digit.val = 1)

(no.12?)


8







(no.11?)


1



2



  1. Simpul (no.11?) =

    1. digit dengan atribut (digit.val = 2)

    2. number dengan atribut (number.val = 2)

    3. number dengan atribut (number.val = 0*10 + 2 = 2)

    4. 2




  1. Simpul (no.12?) =

    1. number dengan atribut (number.val = 0*10 + 2 = 2)

    2. digit dengan atribut (digit.val = 2)

    3. number dengan atribut (number.val = 2)

    4. 2




  1. Simpul (no.13?) =

    1. number dengan atribut (number.val = 8)

    2. digit dengan atribut (digit.val = 8)

    3. a dan b benar

    4. a dan b salah




  1. Simpul (no.14?) =

    1. number dengan atribut (number.val = 21)

    2. number dengan atribut (number.val = 21*10 + 8 = 218)

    3. number dengan atribut (number.val = 8)

    4. digit dengan atribut (digit.val = 218)




  1. Tata bahasa G_num dengan syntax directed definition pada tabel2

    1. mengandung inherited attribute (tidak semuanya inherited)

    2. semuanya inherited attribute

    3. semuanya synthesized attribut

    4. tidak mempunyai atribut



Untuk Soal no.16 sampai nomor yang Anda pikir perlu menggunakan ini.

Perhatikan petunjuk berikut:

  • FIRST() adalah himpunan terminal-terminal yang mengawali untai-untai yang diturunkan dari . Jika   , maka  juga anggota FIRST().

  • FOLLOW(A), untuk nonterminal A, adalah himpunan terminal a yang  terdapat derivasi berbentuk S  Aa untuk beberapa  dan .

  • # adalah simbol tambahan pada tatabahasa sebagai tanda akhir dari untai input pada parser

  • LR(0) item dari produksi adalah produksi dengan dot “” di salah satu posisi dari ruas kanannya. Contoh [ A  ] adalah salah satu item dari produksi A  .

  • closure dari himpunan item I adalah closure(I) = himpunan item I yang ditambah dengan B  , untuk setiap item [A  B] dalam I, B   dalam himpunan produksi.

  • goto(I, X) adalah closure dari item [A  X] untuk setiap item [A  X] pada I



  1. Jika augmented grammar G_1 adalah G’_1 sebagai berikut:

  1. Stm’  Stm

  2. Stmprint(ExpList)

  3. ExpList  ExpList ; e

  4. ExpList  e


Maka berdasarkan pengertian di atas, I0 = closure(Stm’ Stm) adalah himpunan item LR(0)

a. Stm’ Stm c. Stm  print(ExpList)

Stm  print(ExpList)

ExpList ExpList ; e

ExpList e
b. Stm’ Stm d. Stm’ Stm

Stm  print(ExpList)



  1. Berdasarkan I0 pada soal no.16, I1 = goto(I0, Stm) adalah

    1. Stm’ Stm c. Stm’ Stm

Stm  print(ExpList) Stm  print(ExpList)

ExpList ExpList ; e

ExpList e


    1. Stm’ Stm d. Stm  print(ExpList)



  1. Berdasarkan I0 pada soal no.16, I2 = goto(I0, print) adalah

    1. Stm  print(ExpList) c. Stmprint(ExpList)

    2. Stmprint(ExpList) d. a, b dan c salah semua




  1. Berdasarkan I2 pada soal no.18, I3 = goto(I2, ( ) adalah

    1. Stmprint(ExpList) c. Stmprint(ExpList)

ExpList ExpList ; e ExpList ExpList ; e
b. Stmprint(ExpList) d. Stmprint(ExpList)

ExpList ExpList ; e

ExpList e


  1. Berdasarkan I3 pada soal no.19, I4 = goto(I3, ExpList) adalah

    1. Stmprint(ExpList) c. Stmprint(ExpList)

ExpList ExpList ; e ExpList ExpList ; e

ExpList e
b. Stmprint(ExpList) d. Stmprint(ExpList)

ExpList ExpList ;e

  1. Berdasarkan I3 pada soal no.19, I5 = goto(I3,e) adalah

    1. ExpList ExpList ; e c. Stmprint(ExpList)

ExpList e

b. ExpList ExpList ; e d. ExpList e


  1. Berdasarkan I4 pada soal no.20, I6 = goto(I4, ) ) adalah

    1. Stmprint(ExpList) c. Stmprint(ExpList)



    1. Stmprint(ExpList)  d. Stmprint(ExpList)

ExpList ExpList ; e

ExpList e


  1. Berdasarkan I4 pada soal no.20, I7 = goto(I4, ; ) adalah

    1. ExpList ExpList ; e c. ExpList ExpList ; e


    1. ExpList ExpList ; e d. a, b dan c salah semua

ExpList ExpList ; e

ExpList e


  1. Berdasarkan I7 pada soal no.23, I8 = goto(I7, e ) adalah

    1. ExpList ExpList ; e c. ExpList ExpList ; e



    1. ExpList ExpList ; e d. ExpList ExpList ; e

ExpList ExpList ; e

ExpList e
Berdasarkan pengertian di atas dan state-i yang terbentuk dari Ii, sebagaimana pada soal 16 s.d. 24, perhatikan tabel parsing bottom-up SLR(1) M(t, X), untuk state t dan simbol X, pada grammar G’_1 (sebagaimana pada soal no.16) berikut:
Tabel-3




action

goto

state

print

(

)

;

e

#

Stm

ExpList

0

s2




(25?)










1




1
















acc







2




(26?)



















3













s5







(27?)

4







(28?)

s7













5







r3

(29?)













6
















r1







7













s8










8







(30?)

r2













Keterangan:

si = shift dan goto state i

rj = reduce dengan produksi ke-j

kosong = error

acc = accept
Petunjuk soal no.25 s.d.no.30:

Lengkapi tabel parser caconical LR diatas, sesuai dengan nomor yang tertera pada (…?)



  1. M(0, ) ) =

    1. s1 c. s2

    2. r1 d. tidak terdefinisi(kosong)/error




  1. M(2, ( ) =

    1. s2 c. tidak terdefinisi(kosong)/error

    2. s1 d. s3




  1. M(3, ExpList) =

    1. s4 c. tidak terdefinisi(kosong)/error

    2. 3 d. 4




  1. M(4, ) ) =

    1. tidak terdefinisi(kosong)/error c. s6

    2. s7 d. 6




  1. M(5, ;) =

    1. r5 c. r3

    2. s3 d. tidak terdefinisi(kosong)/error




  1. M(8, ) ) =

    1. r2 c. tidak terdefinisi(kosong)/error

    2. s2 d. acc


Berdasarkan Tabel-3 di atas, maka parser SLR(1) akan melakukan urutan langkah parsing dengan konfigurasi (i, xi) = (untai pada stack pada urutan ke-i, sisa untai input pada urutan ke-i), untuk untai input print(e;e) dari grammar G’_1 sebagaimana pada Tabel-4 berikut :
Tabel-4

Urutan ke-

STACK

INPUT

ACTION

1

0

print(e;e)#

shift

2

0print2

(e;e)#

shift

3

(31?)

e;e)#

shift

4

0print2(3e5

;e)#

shift

5

0print2(3ExpList4

;e)#

reduce by ExpListe

6

0print2(3ExpList4;7

e)#

shift

7

0print2(3ExpList4;7e8

)#

shift

8

0print2(3ExpList4

)#

(32?)

9

0print2(3ExpList4)6

#

shift

10

(33?)

#

reduce by Stmprint(ExpList)

11




acc





Lengkapi Tabel-2, sesuai dengan nomor yang tertera pada (…?)


  1. (3, e;e)#) dengan 3 adalah

    1. 0print2Stm3 b. 0print2 c. 0print d. 0print2(3



  1. ( 0print2(3ExpList4;7e8, )# ) pada urutan langkah ke-8 melakukan aksi (kolom ACTION)

    1. memanggil fungsi error recovery

    2. shift karena parser akan bergerak ke state -2

    3. shift karena parser akan bergerak ke state -1

    4. reduce by ExpListExpList ; e



  1. (10, # ) dengan 10 adalah

    1. 0print1 b. 0#1 c. 0 d. 0Stm1




  1. Sebuah program yang membaca suatu program yang ditulis dalam suatu bahasa sumber yang merupakan bahasa tingkat tinggi dan menterjemahkannya ke dalam suatu bahasa sasaran berupa bahasa mesin, adalah :

    1. Source Language

    2. Target Language

    3. compiler

    4. Lexical




  1. Proses analisa pada kompilator yang diperuntukkan membaca program sumber, karakter demi karakter dan mengelompokkan dalam satu kesatuan token, disebut juga proses

    1. Error handling

    2. parsing

    3. scanning

    4. Error recovery




  1. Suatu kesalahan yang terjadi jika pola deretan token tidak memenuhi ketentuan pola yang telah ditentukan tata bahasa untuk parser merupakan :

    1. Kesalahan Leksikal

    2. Error Messages

    3. Kesalahan Semantiks

    4. Kesalahan Sintaks




  1. Proses kompilasi dikelompokkan ke dalam dua kelompok besar yaitu :

    1. Analisa dan Error

    2. Analisa dan Sintesa

    3. Error dan Sintesa

    4. Sintaks dan Error




  1. Input parser dari kompilator adalah

    1. Tata bahasa pembentuk token

    2. token

    3. derivasi untai

    4. Intermediate code




  1. Output parser dari kompilator adalah

    1. Tata bahasa pembentuk pola deretan token

    2. Pohon parsing

    3. Kode antara

    4. Kode mesin




  1. Jika parsing dilakukan menggunakan metode top down, maka pengecekan kalimat dimulai dari

    1. stack yang kosong, kemudian diisi dengan catatan kesalahan

    2. kalimat, kemudian menentukan handle untuk dilakukan reduksi ke variabel dari tata bahasa yang sesuai dengan aturan produksi yang bersangkutan

    3. simbol awal tata bahasa yang membentuk kalimat, kemudian derivasi dilakakukan berdasarkan aturan produksi yang sesuai

    4. state penerima yang kemudian ditelusuri sampai ke state awal


Alhamdulillah…
Kunci Jawaban B

UAS T. Kompilasi PTA 2008/2009


  1. b

  1. b

  1. c

  1. d

  1. d

  1. a

  1. d

  1. d

  1. c

  1. d

  1. a

  1. c

  1. b

  1. b

  1. c

  1. d

  1. b

  1. b

  1. b

  1. c

  1. d

  1. d

  1. a

  1. d

  1. d

  1. d

  1. d

  1. c

  1. c

  1. a

  1. a

  1. d

  1. d

  1. c

  1. c

  1. d

  1. b

  1. b

  1. b

  1. c

Share ing jaringan sosial


Similar:

U niversitas gunadarma sk no. 92 / dikti / Kep /1996

U niversitas gunadarma sk no. 92 / dikti / Kep /1996

Sk no. 92 / Dikti / Kep / 1996

Tengen


Nalika Nyalin materi nyedhiyani link © 2000-2017
kontak
t.kabeh-ngerti.com
.. Home