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)
   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,BV_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

Postingan populer dari blog ini

Tugas Sofstkill Pengantar Bisnis informatika

Perusahaan Software Engineer