Vclas2 Teknik Kompilasi
Vclass2 Teknik Kompilasi
Qais Cahyo Wibowo
55415473
4IA13
A. Essay
1.
Sebutkan definisi:
a. Bahasa mesin
Bahasa mesin atau kode
mesin merupakan seperangkat instruksi serta data yang dapat dieksekusi secara
langsung oleh prosesor komputer. Kode mesin merupakan tingkatan yang paling
rendah dari bahasa pemrograman dan biasanya digunakan sebagai tujuan kompilasi
oleh kompiler pada bahasa-bahasa pemrograman lain dalam tingkatan yang lebih
tinggi. Penerjemahan kode pada bahasa pemrograman interpretatif atau bahasa
skrip umumnya tidak termasuk dalam kriteria tersebut karena umumnya bahasa
skrip menerjemahkan kode sumber menjadi P-Code, kode penjembatan antara kode
sumber dan kode mesin. Meski demikian, umumnya bahasa skrip populer yang ada
saat ini telah menambahkan kompiler JIT (Just In Time) integratif yang secara
hibrida mengkompilasi instruksi-instruksi P-Code yang paling sering dieksekusi
menjadi kode mesin.
b. Bahasa assembly
Bahasa assembly adalah
sebuah program yang terdiri dari instruksi-instruksi yang menggantikan kode-kode biner dari bahasa
mesin dengan “mnemonik” yang mudah diingat. Misalnya sebuah instruksi
penambahan dalam bahasa mesin dengan kode “10110011” yang dalam bahasa assembly
dapat dibuat dalam instruksi mnemonik ADD, sehingga mudah diingat dibandingkan
dengan angka 0 dan 1, dalam setiap instruksi membutuhkan suatu operand baik
berupa data langsung maupun suatu lokasi memori yang menyimpan data yang
bersangkutan. Bahasa assembly sering juga disebut kode sumber atau kode
simbolik yang tidak dapat dijalankan oleh prosesor, sedangkan assembler adalah
suatu program yang dapat menerjemahkan program bahasa assembly ke program
bahasa mesin. bahasa mesin adalah kumpulan kode biner yang merupakan instruksi
yang bisa dijalankan oleh komputer. Program bahasa mesin sering disebut sebagai
kode objek.
c. Bahasa tingkat Tinggi
Bahasa
pemrograman tingkat tinggi adalah sebuah bahasa pemrograman yang jika
dibandingkan dengan bahasa pemrograman tingkat rendah memiliki sifat lebih
mudah digunakan, lebih portabel (mudah diadaptasikan) antar-platform, dan lebih
abstrak. Bahasa-bahasa semacam ini sering melakukan abstraksi terhadap beberapa
operasi CPU, seperti halnya pengaksesan memori.
2.
Jelaskan tentang
a. Compiler
Compiler
adalah suatu program yang menerjemahkan bahasa program ( source code) kedalam
bahasa objek (obyek code). Compiler menggabungkan keseluruhan bahasa program,
mengumpulkannya dan kemudian menyusunnya kembali.
Komplier memerlukan waktu untuk membuat suatu program dapat di eksekusi oleh computer, program yang dieksekusi oleh compiler adalah dapat berjalan lebih cepat disbanding program yang diperoduksi oleh interpreter, disamping itu juga bersifat independen. Contoh program yang menggunakan compiler adalah Visual Basic, Visual Delvi, dan Pascal.( http://www.infomugi.com/2013/04/pengertian-compiler-interpreter.html)
Komplier memerlukan waktu untuk membuat suatu program dapat di eksekusi oleh computer, program yang dieksekusi oleh compiler adalah dapat berjalan lebih cepat disbanding program yang diperoduksi oleh interpreter, disamping itu juga bersifat independen. Contoh program yang menggunakan compiler adalah Visual Basic, Visual Delvi, dan Pascal.( http://www.infomugi.com/2013/04/pengertian-compiler-interpreter.html)
b. Interpreter
Interpreter adalah
Perangkat lunak yang mampu mengeksekusi code program (yang ditulis oleh
programmer) lalu menterjemahkannya ke dalam bahasa mesin, sehingga mesin
melakukan instruksi yang diminta oleh programmer tersebut. Perintah-perintah
yang dibuat oleh programmer tersebut dieksekusi baris demi baris, sambil
mengikuti logika yang terdapat di dalam kode tersebut.
Proses ini sangat
berbeda dengan compiler, dimana pada compiler, hasilnya sudah langsung berupa
satu kesatuan perintah dalam bentuk bahasa mesin, dimana proses penterjemahan
dilaksanakan sebelum program tersebut dieksekusi.
Interpreter atau dalam
bahasa Indonesia dikenal sebagai Juru Bahasa berbeda dengan Translator atau
penterjemah dalam segi media yang dipakai untuk menerjemahkan. Interpreter akan
menterjemahkan bahasa sumber ke dalam bahasa sasaran secara langsung atau
orally sementara translator akan menerjemahkan bahasa sumber ke bahasa sasaran
secara tertulis.
Java dijalankan
menggunakan interpreter yaitu Java Virtual Machine (JVM). Hal ini menyebabkan
source code Java yang telah dikompilasi menjadi Java bytecodes dapat dijalankan
pada platform yang berbeda-beda.( http://www.infomugi.com/2013/04/pengertian-compiler-interpreter.html)
c.
Assembler
Bahasa
assembly adalah sebuah program yang terdiri dari instruksi-instruksi yang
menggantikan kode-kode biner dari bahasa mesin dengan “mnemonik” yang mudah
diingat. Misalnya sebuah instruksi penambahan dalam bahasa mesin dengan kode
“10110011” yang dalam bahasa assembly dapat dibuat dalam instruksi mnemonik
ADD, sehingga mudah diingat dibandingkan dengan angka 0 dan 1, dalam setiap instruksi
membutuhkan suatu operand baik berupa data langsung maupun suatu lokasi memori
yang menyimpan data yang bersangkutan. Bahasa assembly sering juga disebut kode
sumber atau kode simbolik yang tidak dapat dijalankan oleh prosesor, sedangkan
assembler adalah suatu program yang dapat menerjemahkan program bahasa assembly
ke program bahasa mesin. bahasa mesin adalah kumpulan kode biner yang merupakan
instruksi yang bisa dijalankan oleh komputer. Program bahasa mesin sering
disebut sebagai kode objek.
3.
Apa yang dimaksud dengan BootStrap
Bootstrap adalah
front-end framework yang solek, bagus dan luar biasa yang mengedapankan
tampilan untuk mobile device (Handphone, smartphone dll.) guna mempercepat dan
mempermudah pengembangan website. Bootstrap menyediakan HTML, CSS dan
Javascript siap pakai dan mudah untuk dikembangkan.(
https://www.apacara.com/tutorial/bootstrap/belajar-bootstrap-untuk-pemula.html)
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.(
https://www.slideshare.net/mastnie/technik-kompilasi?from_action=save)
-Automata Hingga
·
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.
1.
Eliminasi
produksi hampa
Produksi hampa
dikaitkan dengan pengertian nullable
Suatu simbol A ∈ V_N dikatakan nullable
jika :
(a) terkait dengan
produksi berbentuk : A→ε , atau
(b) terkait dengan
derivasi berbentuk : A =>⋯=>ε
Eliminasi yang
dilakukan terhadap simbol nullable adalah :
(a) Buang produksi
hampa
(b) Tambahkan produksi
lain yang merupakan produksi lama tetapi
simbol nullable-nya
yang di ruas kanan produksi dicoret.
Contoh:
Lakukan eliminasi
produksi hampa terhadap himpunan produksi berikut :
Q = { S → a|Xb|aYa, X
→Y|ε, Y→b|X}
Solusi :
Simbol nullable adalah
X (karena X →ε) dan Y (karena Y =>X=>ε)
Dua langkah eliminasi
simbol nullable adalah :
• langkah (a)
menghilangkan produksi X →ε
• langkah (b)
menambahkan produksi S→ b (pencoretan simbol nullable
X pada produksi S →Xb)
dan produksi S→aa (pencoretan simbol
nullable Y pada
produksi S→aYa)
Himpunan produksi
setelah dilakukan eliminasi produksi hampa adalah :
Q = { S →
a|Xb|aYa|b|aa, X →Y, Y→b|X}
2.
Eliminasi
produksi unitas
Produksi unitas
berbentuk A→ B, dimana A,B∈V_N
• Jika ada produksi
berbentuk : A ® B, atau derivasi A Þ
X_1 Þ
X_2 Þ
... Þ B, dan jika ada produksi non-unitas dari B berbentuk :
B ® a_1 ½a_2 ½...½a_n , maka eliminasi yang
dilakukan akan
menghapus produksi A ® B dan menghasilkan produksi :
A ® a1½a2½...½an.
·
Tidak
dilakukan eliminasi terhadap derivasi tertutup karena tidak akan menghasil-kan
produksi baru. Bentuk derivasi tertutup adalah : A Þ X_1 Þ
X_2 Þ
... Þ A,
Contoh:
Lakukan eliminasi
produksi unitas terhadap himpunan produksi berikut :
Q = {S ® A½bb, A ® B½b, B ® S½a}
Solusi :
Untuk memudahkan,
pisahkan produksi unitas dan non-unitas :
• Produksi unitas : S ® A, A ® B, B ® S
• Produksi non unitas :
: S ® bb, A ® b, B ® a
Proses eliminasi yang
dilakukan adalah :
S ® A dan A ® b menghapus S ®
A dan menghasilkan S ® b S Þ A Þ B dan B ® a menghasilkan S ®
a A ® B dan B ® a menghapus A ®
B dan menghasilkan A ® a A Þ B Þ S dan S ® bb menghasilkan A ®
bb B ® S dan S ® bb menghapus B ®
S dan menghasilkan B ® bb B Þ S Þ A dan A ® b menghasilkan B ®
b
Perhatikan bahwa
derivasi S Þ A Þ B Þ S (derivasi tertutup) dan produksi S bb
akan menghasilkan
produksi S ® bb yang jelas bukan merupakan produksi baru.
Karena itu terhadap
derivasi ini tidak dilakukan eliminasi.
3.
Penerapan
batasan bentuk ruas kanan produksi
Penerapan batasan
bentuk ruas kanan produksi adalah mengubah
semua bentuk produksi
ke dalam 2 bentuk berikut : A ®
a dan A ® B1 B2 … Bn, n ³
2.
Contoh :
Terapkan batasan bentuk
ruas kanan produksi terhadap himpunan
produksi berikut :
Q = {S ® Aa, A ® bAa}
Solusi :
produksi S ® Aa diubah menjadi : S ®
AXa, Xa® a
produksi A ® bAa diubah menjdi : A ®
XbAXa, Xa® a, Xb® b
sehingga himpunan produksi menjadi :
Q = {S ® AXa, A ® XbAXa, Xa® a, Xb® b }
4.
Penerapan
batasan panjang ruas kanan produksi
Penerapan batasan
panjang ruas kanan produksi adalah mengubah semua
bentuk produksi
sehingga panjang untai ruas kanannya £
2.
Contoh :
Terapkan batasan
panjang ruas kanan produksi terhadap himpunan
produksi berikut :
Q = {S ® ABCD½ABC, B ® Xb B Xa }
Solusi :
produksi S ® ABCD diubah menjadi : S ®
AT1, T1® BT2, T2® CD
produksi S ® ABC diubah menjadi : S ®
AT3, T3® BC
produksi B ® XbB Xa diubah menjadi : B ®
X T4, T4® B Xa
sehingga himpunan
produksi menjadi :
Q = { S ® AT1, T1® BT2, T2® CD, S ® AT3, T3® BC, B ® X T4, T4® B Xa } (http://lisetyo.staff.gunadarma.ac.id/Downloads/files/43088/TEORI+BAHASA+DAN+OTOMATA+PERTEMUAN+KE-11.pdf)
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
Komentar
Posting Komentar