Minggu, 18 November 2018

Teknik Kompilasi

Vclass 2

A. Essay 

1. Sebutkan definisi:
    a.  Bahasa mesin 
    b.  Bahasa assembly
    c. Bahasa tingkat Tinggi

Jawab:

 1) Bahasa mesin

Bahasa mesin termasuk ke dalam bahasa tingkat rendah (low level language) karena sifat dari bahasa mesin lebih berorientasi pada mesin. Bahasa ini hanya akan dipahami oleh komputer itu sendiri. Bahasa ini berupa kode-kode yang terdiri dari sekumpulan angka yang ada di dalam komputer yang biasanya diwakili oleh kode angka 1 (satu) dan 0 (nol). Kode ini merupakan sinyal elektronik yang memberitahu komputer apa yang harus dikerjakan. Dalam penggunaannya biasanya intruksi dituliskan dalam bentuk bahasa pemrograman yang akan disampaikan ke kompiler, assembler, atau interpreter yang bertugas untuk menerjemahkan bahasa pemrograman tadi ke bahasa mesin.

2) Bahasa assembly

Bahasa asembly adalah bahasa pemrograman yang menggunakan bahasa rakitan. Bahasa assembly kebanyakan digunakan untuk pengendalian hardware yang diwujudkan dalam kependekan kata-kata sebagai pengganti kode-kode biner, misalnya JNZ (jump non zero) yang artinya lompatlah jika tidak sama dengan nol. Kelanjutan dari bahasa assembly adalah sebuah program yang berguna untuk mengambil informasi yang dituliskan oleh seorang programmer dalam bahasa assembly serta menerjemahkannya ke dalam sebuah program yang dapat dieksekusi oleh komputer, program ini dinamakan assembler. Output assembler harus diproses oleh linker untuk menghasilkan program akhir.




3) Bahasa tingkat tinggi (high level languange)

Bahasa tingkat tinggi memiliki arti bahwa bahasa ini lebih mudah dimengerti oleh banyak orang karena memang dirancang untuk orang yang awam. Bahasa pemrograman yang termasuk dalam bahasa tingkat tinggi adalah sebagai berikut.

a) BASIC (Beginners All-purposes Symbolic Instruction Code)

Bahasa program ini dikembangkan pada tahun 1965 di Darmouth College. Penciptanya adalah John Kemeny dan Thomas Kurtz. BASIC dipergunakan dalam aplikasi matematika. Selain itu, BASIC juga digunakan dalam beberapa aplikasi lainnya seperti akuntasi, permainan, file simulasi, dan lain-lain.

Keunggulan BASIC terletak pada kemudahan dalam pemakaiannya, sedangkan kelemahannya adalah tidak mendukung operasi bilangan kompleks dan penanganan terhadap berkas sangat terbatas sehingga tidak cocok untuk aplikasi bisnis.

b) LOGO

Bahasa ini dikembangkan untuk pendidikan dan simulasi pengajaran pada anak-anak dalam menyelesaikan masalah dan melakukan pemrograman. Ditemukan pada tahun 1967 oleh Seymour Papert dengan menggunakan LISP, yaitu satu jenis bahasa pemrograman untuk kecerdasan buatan. Logo sangat mudah digunakan untuk membuat gambar, sehingga banyak digunakan dalam menghasilkan laporan-laporan bisnis dalam bentuk grafik.

c) COBOL (Common Business Oriented Language)

Program jenis ini sering digunakan dalam dunia bisnis dan komersial, mulai dikembangkan pada tahun 1959. Namun sampai saat ini, program ini masih banyak digunakan pada jenis komputer minicomputer dan mainframe. COBOL memiliki keunggulan-keunggulan sebagai berikut.

1) Memiliki kode untuk semua flatform yang sama, sehingga tidak tergantung pada mesin.

2) Menggunakan kata-kata bahasa Inggris, sehingga sangat mudah dipahami oleh programmer.

3) Penanganan masukan dan keluaran mudah dilakukan.

4) Penanganan terhadap berkas sudah tersedia dan bahkan mendukung berbagai macam tipe-tipe berkas seperti sekuensial dan indeks.

Kelemahan dari bahasa ini adalah struktur penulisan program yang sangat banyak dan sangat kaku sehingga membuat programmer menjadi lelah dan bosan.


2. Jelaskan tentang
    a. Compiler
    b. Interpreter
    c. Assembler

Jawab:

a)    Kompiler adalah program penerjemah yang mengonversi semua kode sumber selain dalam bahasa rakitan menjadi kode objek. Hasil berupa kode objek inilah yang dapat dijalankan oleh komputer. Proses untuk melakukan penerjemahan ini biasa disebut kompilasi.

b)     Intepreter adalah program yang menerjemahkan satu per satu instruksi dalam kode sumber kemudian menjalankan instruksi yang telah diterjemahkan tersebut.

c)     Asembler adalah program yang digunakan untuk menerjemahkan kode sumber dalam bahasa rakitan (assembly) ke dalam bahasa mesin.

3. Apa yang dimaksud dengan BootStrap
Merupakan  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.

4. Sebutkan definisi Grammar dan Automata Hingga
Jawab:
Grammar adalah bentuk abstrak yang dapat diterima (accept) untuk membangkitkan suatu kalimat otomata berdasarkan suatu aturan tertentu.

Automata hingga melibatkan stata dan transisi antar stata yang merupakan tanggapanatas masukan. Automata hingga berguna untuk merekayasa perangkat lunak tertentu termasuk komponen le1ical analyzer yang terdapat pada compiler dan sistem pemeriksa kebenaran pada sirkuit atau protocol.

5.  Sebutkan 4 jenis Grammar  menurut Chomsky, masing-masing beserta  aturan produksinya.

Jawab
1.      Tipe nol : UnRestricted Grammar (Tata Bahasa Tidak Terbatasi)

Tata Bahasa UnRestricted yang tidak merupakan anggota dari klasifikasi lainnya ditandai dengan aturan produksi yang bagian sebelah kirinya lebih panjang dari bagian sebelah kanan. Aturan produksi yang mengandung simbol hampa (^) pasti merupakan Tata Bahasa UnRestricted dan tidak termasuk klasifikasi lainnya.


2        Tipe satu : Context Sensitive Grammar (Tata Bahasa Tergantung Konteks)
Tata bahasa ini terdiri dari produksi berbentuk :
a ®  dengan  ½a½  <==  ½b½
dimana a adalah string dan ½a½ adalah panjang string a demikian juga b adalah string dan ½b½ adalah panjang string b. String adalah merupakan deretan simbol baik terminal maupun non terminal.

Contoh :
G = ( {S, B, C}, {a, b, c}, S, Q )
Dimana Q terdiri dari produksi berikut :
1.      S     ® aSBC ½ abC
2.      bB  ® bb
3.      BC ® bc
4.      CB ® BC
5.      CC ® cc

3.    Tipe dua : Context Free Grammar ( Tata Bahasa Bebas konteks)
Tata bahasa ini terdiri dari produksi berbentuk :
a ®  dengan  ½a½  <==  ½b½
dimana a adalah anggota Vn sedangkan b adalah string. Berarti Context Free Grammar seluruh produksi ruas kirinya hanya terdiri dari satu simbol yaitu simbol non terminal.
Contoh :
G = ( {S, C}, {a, b}, S, Q )
Dimana Q terdiri dari produksi berikut :
1.      S ® aSa
2.      S ® aCa
3.      C ® b

4.  Tipe tiga : Regular Grammar
Tata bahasa ini terdiri dari produksi berbentuk :
a ®  dengan  ½a½  <==  ½b½
dimana a adalah anggota Vn dan b mempunyai bentuk aB atau a dengan a anggota Vt dan B anggota Vn.

Contoh :
G = ( {S, A, B, C}, {a, b}, S, Q )
Dimana Q terdiri dari produksi berikut :
1.      S ® aS ½ aB
2.      B ® bC
3.      C ® aC
4.      C ® a

Regular Grammar merupakan subset dari Context Free Grammar.
Context Free Grammar merupakan subset dari Context Sensitive Grammar.
Context Sensitive Grammar merupakan subset dari UnRestricted Grammar.
Definisi : Kompilator (compiler) adalah sebuah program yang membaca suatu program yang ditulis dalam suatu bahasa sumber (source language) dan menterjemah-kannya ke dalam suatu bahasa sasaran (target language).

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



Posted on by Fairuz Rafida ( 내 블로그 ) | No comments

0 comments:

Posting Komentar