NPM : 55415707
Kelas : 4IA13
A. Pilihan Ganda
1. Yang dimaksud dengan Diagram State, pada teknik Kompilasi adalah
a. Digunakan untuk mendapatkan token, mempermudah melakukan analisis lexical
b. Digunakan untuk mendapatkan token, mempermudah melakukan analisis syntax
c. Aturan produksi yang dikenalkan oleh comsky
d. Simbol terminal
2. Yang dimaksud dengan TOKEN, pada teknik Kompilasi adalah
a. Digunakan untuk mendapatkan token, mempermudah melakukan analisis lexical
b. Digunakan untuk mendapatkan token, mempermudah melakukan analisis syntax
c. Alat bantu (tools) dalam pembuatan parser/ analisis sintaksis
d. Simbol terminal
3. Yang dimaksud dengan Diagram Syntax, pada teknik Kompilasi adalah
a. Digunakan untuk mendapatkan token, mempermudah melakukan analisis lexical
b. Digunakan untuk mendapatkan token, mempermudah melakukan analisis syntax
c. Alat bantu (tools) dalam pembuatan parser/ analisis sintaksis
d. Simbol terminal
4. Translator yang Source codenya adalah bahasa assembly dan Object codenya adalah bahasa mesin, disebut dengan
a. Assembler
b. Compiler
c. Interpreter
d. Supplier
5. Translator yang Source code nya adalah bahasa tingkat tinggi, object code adalah bahasa mesin atau bahasa assembly, di mana source code dan data diproses berbeda, disebut dengan :
a. Assembler
b. Compiler
c. Interpreter
d. Supplier
6. Memgelompokkan program asal/sumber menjadi token disebut dengan
a. Scanner
b. Parser
c. Lexicer
d. Interpreter
7. Yang bertugas untuk memeriksa kebenaran dan urutan dari token-token yang terbentuk oleh scanner, disebut dengan:
a. Scanner
b. Parser
c. Lexicer
d. Interpreter
8. Tugas dari anlysis lexixal adalah
a. Mentransformasikan ke dalam bentuk token-token
b. Proses pendeteksian token-token
c. Untuk mengenali makna dari simbol-simbol
d. Memeriksa variabel sudah dideklarasikan atau belum
9. Tugas dari Semantics analyser adalah
a. Mentransformasikan ke dalam bentuk token-token
b. Proses pendeteksian token-token
c. Untuk mengenali makna dari simbol-simbol
d. Memeriksa variabel sudah dideklarasikan atau belum
10. Tugas dari Syntax analyser adalah
a. Mentransformasikan ke dalam bentuk token-token
b. Proses pengelompokan token-token kedalam class syntax
c. Untuk mengenali makna dari simbol-simbol
d. Memeriksa variabel sudah dideklarasikan atau belum
11. Tugas dari Intermidiate code, adalah
a. Mentransformasikan ke dalam bentuk token-token
b. Proses pengelompokan token-token kedalam class syntax
c. Memperkecil usaha dalam membuat compilator dari sejumlah bahasa ke sejumlah mesin
d. Memeriksa variabel sudah dideklarasikan atau belum
12. Fungsi dari Tabel simbol, adalah :
a. Mentransformasikan ke dalam bentuk token-token
b. Proses pengelompokan token-token kedalam class syntax
c. Memperkecil usaha dalam membuat compilator dari sejumlah bahasa ke sejumlah mesin
d. Menindak lanjuti untuk perbaikan
B. Essay
1. Sebutkan definisi:
a. Bahasa mesin
Bahasa mesin merupakan bentuk terendah dari bahasa komputer. Disebut low level language -> object language. Bahasa mesin berkomunikasi langsung dengan bagian-bagian yang ada di dalam komputer seperti bits, register. Setiap instruksi dalam program direpresentasikan dengan kode numerik berupa deretan angka nol dan satu (0,1). Setiap instruksi dalam bahasa mesin, dibentuk menjadi micro code yaitu seperti prosedur dalam bahasa mesin.
b. Bahasa assembly
Merupakan bentuk simbolik dari bahasa mesin, dianggap sebagai bahasa pemrograman yang pertama kali berbentuk string dan lebih mudah dimengerti manusia. Setiap kode bahasa mesin memiliki simbol sendiri dalam bahasa assembly. Misalnya ADD untuk penjumlahan, MUL untuk perkalian, SUB untuk pengurangan, dan lain-lain. Sekumpulan kode - kode bahasa assembly dapat membentuk makroinstruksi. Bahasa assembly juga memiliki program pendebug-nya, tidak seperti bahasa mesin.
c. Bahasa tingkat Tinggi
Bahasa ini juga memberikan banyak sekali fasilitas kemudahan pembuatan program, misalnya: variabel, tipe data, konstanta, struktur kontrol, loop, fungsi, prosedur dan lain-lain. Contoh: Pascal, Basic, C++, dan Java.Mendukung information hiding, enkapsulasi, dan abstract data type. Bahasa Tingkat tinggi memiliki generasi, misalnya generasi ke-3 (Pascal, C/C++) dan generasi ke-4 (Delphi, VB, VB.NET, Visual Foxpro).
2. Jelaskan tentang
a. Compiler : Source code adalah bahasa tingkat tinggi, object code adalah bahasa
mesin atau bahasa assembly. Source code dan data diproses berbeda.
b. Interpreter : Interpreter tidak menghasilkan bentuk object code, tetapi hasil
translansinya hanya dalam bentuk internal, dimana program induk harus selalu ada-berbeda dengan compiler.
c. Assembler : source code adalah bahasa assembly, Object code adalah bahasa
mesin.
3. Apa yang dimaksud dengan BootStrap
Gagasan dari bootstrap adalah untuk membangun sesuatu yang besar dengan lebih dahulu membuat bagian intinya. Cara ini diperkenalkan oleh Niklaus Wirth saat membuat kompilator untuk bahasa Pascal.
P0 dibuat dengan assembly, P1 dibuat dari P0, dan P2 dibuat dari P1, jadi compiler untuk bahasa P dapat dibuat tidak harus dengan menggunakan assembly secara keseluruhan
4. Sebutkan definisi Grammar dan Automata Hingga
· Grammar
Tata bahasa (grammar) adalah sekumpulan dari himpunan variabel-variabel, simbol-simbol terminal, simbol non-terminal, simbol awal yang dibatasi oleh aturan-aturan produksi.
· Automata Hingga (AH)
ü Merupakan mesin automata dari bahasa regular
ü AH didefinisikan sebagai pasangan 5 tupel (K, VT, d, S, Z), dimana
K = himpunan hingga stata
VT = himpunan hingga symbol input (alphabet)
d = fungsi transisi
S Î K = stata awal
Z Ì K = himpunana stata penerima
5. Sebutkan 4 jenis Grammar menurut Chomsky, masing-masing beserta aturan produksinya
· GRAMMAR DAN KLASIFIKASI CHOMSKY
Grammar G didefinisikan sebagai pasangan 4 Tuple : VT, VN, S , Q dan dituliskan sebagai G (VT, VN, S, Q), dimana :
VT : himpunan simbol terminal (atau himpunan token-token, atau alphabet)
VN : himpunan simbol-simbol non termnal
S ϵ VN : simbol awal (atau simbol start)
Q : himpunan produksi
Keterangan Gambar
§ Tipe 0 / Unrestricted : Tidak ada batasan pada aturan produksi
o Ciri : α, β ϵ (VT | VN)*, | α | > 0
Abc ---> De
§ Tipe 1 / Context Sensitive : Panjang string ruas kiri harus lebih kecil atau sama dengan ruas kanan
o Ciri : α, β ϵ (VT | VN)*, 0 < | α | ≤ | β |
Ab ---> DeF
CD ---> eF
· Tipe 2 / Context Free Grammar : Ruas kiri haruslah tepat satu simbol variable
o Ciri : α ϵ VN , β ϵ (VT | VN)*
B ---> CDeFg
D ---> BcDe
· Tipe 3 / Regular : Ruas kanan hanya memiliki maksimal 1 simbol non terminal dan diletakkan paling kanan sendiri
o Ciri : α ϵ VN , β ϵ {VT , VT VN} atau α ϵ VN , β ϵ {VT , VN VT }
A ---> e
A ---> efg
A ---> efgH
C ---> D
Aturan Produksi
Aturan Produksi digunakan agar penerapan pada pembuatan tata bahasa dikomputer dapat lebih mudah dan menghasilkan suatu penterjemah yang dapat diandalkan.
· Aturan Produksi dinyatakan dalam bentuk α --> β, α menghasilkan/ menurunkan β
· α simbol-simbol untuk ruas kiri dan β simbol-simbol ruas kanan
· Simbol-simbol bisa berupa terminal dan Non-terminal, dimana Non-terminal masih bisa diturunkan menjadi simbol yang lainnya
· Umumnya simbol terminal disimbolkan dengan huruf kecil (a, b, c, dst), sedangkan untuk simbol Non-terminal disimbolkan dengan huruf besar (A, B, C, dst)
· Contoh aturan produksi :
o T ---> a, T menghasilkan a
o E ---> T |T + E, E menghasilkan T, atau E memnghasilkan T + E