Nama : Nadya Pramesti
NPM : 54415945
Kelas : 4IA13
V-Class2 Teknik Kompilasi
A. 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
B. 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