Jawab TES TENGAH SEMESTER2006 - Lecturer

advertisement
waTES TENGAH SEMESTER Universitas Kristen Duta Wacana NIM : ______________
NAMA: ______________
Mata Kuliah
: Teknik Kompiler
TTD :
Hari / Tanggal
: Selasa, 17 Oktober 2006
Pukul
: 10.00 – 11.30 (90 menit)
_____________________
Dosen
: Antonius Rachmat C, S.Kom
NO KURSI: ___________
Sifat
: Open 1 (satu) lembar kertas bolak-balik, boleh diketik!
Total Point
: 30
Kerjakan soal-soal berikut ini pada lembar ini juga! (Point 15)
1. Hal berikut benar mengenai interpreter kecuali ...
a. Tidak menghasilkan executable file / kode obyek.
b. Proses debuging cepat dan mudah
c. Pemrosesan source code dan inputan data user dilakukan pada saat yang berbeda.
d. Yang termasuk jenis bahasa yang diinterpreter adalah Java bytecode.
2. Kompiler yang dapat menghasiilkan kode obyek yang dapat dijalankan pada mesin yang
berbeda-beda tanpa harus mengkompilasi ulang disebut juga dengan istilah…
a. Bootstrap Compiler c. Independent Compiler
b. Cross Compiler
d. One-pass Compiler
3. Linker adalah sebuah program yang …
a. Menggabungkan semua executable file menjadi satu kesatuan.
b. Menggabungkan semua header file yang dibutuhkan dari sebuah executable file
c. Menggabungkan semua inputan user dan executable file.
d. Menggabungkan semua library dan kode obyek yang dibutuhkan oleh program dan
menghasilkan executable file.
4. Hal yang salah mengenai proses translasi dan eksekusi pada Java adalah …
a. Source Java pertama kali dinterpret agar menjadi Java bytecode
b. Pada saat Java bytecode dijalankan di atas JVM, Java bytecode diinterpret.
c. Hasil akhir proses translasi pada Java menghasilkan file class
d. Preprosessor pada Java menggunakan perintah/keyword: import
5. Pernyataan yang benar mengenai bahasa pemrograman adalah sebagai berikut …
a. Java merupakan contoh weak programming language.
b. Pengecekan tipe dilakukan pada saat compile time pada jenis dynamic programming
language.
c. Tipe data pada bahasa assembly harus dideklarasikan terlebih dahulu.
d. PHP dan ASP adalah contoh untype programming language.
6. Salah satu hal yang merupakan contoh nyata dalam tujuan perancangan bahasa pemrograman
adalah …
a. Java dan .NET adalah contoh machine independent
b. Karakter penanda komentar sebaiknya menggunakan karakter/string yang termasuk
dalam keywords.
c. Suatu bahasa pemrograman yang baik harus bersifat non uniform.
TTS Kompiler 2006 by Antonie - Hal 1
d. Simplicity adalah kenyamanan pengguna dalam penggunaan bahasa pemrograman.
7. Proses menelusuri kesalahan yang terjadi pada saat memprogram termasuk proses recovery
disebut…
a. Trace into Error
c. Error Debugging
b. Run to Error
d. Go to Error Definition
8. Pernyataan-pernyataan yang benar mengenai Regular Expression, kecuali …
a. Salah satu library RE adalah POSIX
b. Pola RE \w+ digunakan untuk mendeteksi sebuah kata.
c. Suatu pola RE harus dikompilasi terlebih dahulu sebelum digunakan untuk pencocokan.
d. Karakter minus (-) jika berada dalam kelas karakter ( [] ) akan selalu menjadi karakter
khusus.
9. Hal yang benar mengenai modifier dalam Regular Expression adalah …
a. Dengan menggunakan modifier i maka huruf besar dan kecil dibedakan.
b. Pada modifier m, tanda ^ dan $ menjadi tidak berlaku lagi.
c. Pada modifier X, tanda # adalah karakter non-literal.
d. Modifier D adalah modifier yang selalu menganggap karakter $ adalah karakter literal.
10. Bentuk RE untuk palindrom 7 huruf adalah ...
a. (\w)(\w)(\w)\w\3\2\1
b. (\w)(\w)(\w)(\w) \2\3\1
c. (\w)(\w)(\w)\w\1\2\3
d. (\w+)(\w+)(\w+)\w\3\2\1
11. String “mahasiswa teknik kompiler“ jika dikenakan RE: tek(.+)i, string yang didapat
adalah ...
a. tekni
c. teknik kompi
b. teknik kompiler
d. mahasiswa tekni
12. Dengan pola RE: [a-z]+\d(?=\.\d), maka string berikut yang diterima adalah …
a. p34.3
c. b21
b. A1.3
d. b1.3
13. Hal yang salah mengenai Notasi Chomsky adalah …
a. Noam Chomsky menggolongkan bahasa sehari-hari sebagai bahasa tipe 0
b. Pada bahasa tipe 1, jumlah aturan produksi di sebelah kiri boleh lebih kecil daripada
jumlah aturan produksi sebelah kanan.
c. Pada bahasa tipe 2, simbol non-terminal pada aturan produksi sebelah kiri boleh
berjumlah 1 atau lebih.
d. Contoh bahasa tipe 3 adalah Regular Expressions.
14. Hal yang benar mengenai Analisis Lexical adalah …
a. Analisis lexical berfungsi untuk mengetahui arti (meaning) dari bahasa / kalimat yang
diprosesnya.
b. Jumlah lexem akan selalu lebih kecil daripada jumlah token.
TTS Kompiler 2006 by Antonie - Hal 2
c. Scanner bekerja atas dasar Finite State Automata dengan implementasi nyatanya adalah
Regular Expression
d. Tugas scanner adalah mengambil token dan membentuk Parse Tree.
15. Pernyataan berikut benar mengenai analisis sintaks, kecuali …
a. Backtracking adalah cara yang digunakan pada Recursive Descent Parsing.
b. Salah satu implementasi Parser adalah Tata Bahasa Bebas Konteks.
c. Tata Bahasa Bebas Konteks lebih fleksibel daripada Regular Expressions.
d. Pada metode Brute Force Parsing, backtracking sangat diperlukan.
Kerjakan soal-soal Essay berikut ini pada lembar ini juga! (Point 15)
1. Buatlah sebuah pola RE yang dapat mengenali string-string berikut ini:
regular expression
regexp
regex
regularexpression
regularex
regularexp
Ingat, pola RE nya hanya boleh satu saja, tapi bisa digunakan untuk memvalidasi semua pola
string di atas. Anda harus menemukan pola RE yang paling singkat. Anda tidak diperbolehkan
menggunakan RE seperti ini: regular
expression|regexp|regex|regularexpression|regularex|regularexp.
Jawab: (Point 5)
reg(ular)?\s*(ex(p)?)(ression)?
2. Terdapat Tata Bahasa Bebas Konteks sebagai berikut:
S => Ba | Ab
A => Sa | Aab | a
B = Sb | Bba | b
Buat proses penurunannya dan gambarkanlah pohon sintaksnya jika string inputan adalah
“bbaaaabb”
Jawab: (Point 5)
S
S => Ab
S => Aabb
A
b
S => Saabb
S => Baaabb
A
a
b
S => Bbaaaabb
S => bbaaaabb
Terbukti
S
a
B
a
B
b
b
S
TTS Kompiler 2006 by Antonie - Hal 3
3. Buatlah DFA yang ekuivalen dengan NFA berikut ini:
State = {q0,q1,q2}
Input = {0,1}
Start = q0
Finish = {q1}
Fungsi Transisinya dinyatakan dengan :
0
1
q1
q0
{q1,q2}
q2
q1
q0
q1,q2
q2
Gambarlah Diagram State NFA dan hasil konversi ke DFA nya!
o Apakah inputan 00110011 diterima?
Jawab: (Point 5)
0
0
Q0
0
1
1
Q1
0,1
Q2
0
0,1
1
ε
Q0,Q1,Q2
Q0
0
0
1
Q2
1
0
1
Q
Q1,Q2
0
1
Inputan 00110011 diterima!
Cara penyelesaian:
((Q1,Q2),0) => (Q1,0) => {Q1,Q2}
(Q2,0) => Q0
{Q1,Q2} U Q0 => {Q0,Q1,Q2}
((Q1,Q2),1) => (Q1,1) => Q2
(Q2,1) => {Q1,Q2}
{Q1,Q2} U Q2 => {Q1,Q2}
((Q0,Q1,Q2),0) =>
((Q0,Q1,Q2),1) =>
(Q0,0) => Q1
(Q1,0) => {Q1,Q2}
(Q2,0) => Q0
Q1 U {Q1,Q2} U Q0 => {Q0,Q1,Q2}
(Q0,1) => ε
(Q1,1) => Q2
(Q2,1) => {Q1,Q2}
ε U Q2 U {Q1,Q2} => {Q1,Q2}
☺ Selamat Bekerja, Tuhan Memberkati! ☺
TTS Kompiler 2006 by Antonie - Hal 4
Download