Anda di halaman 1dari 4

Ujian Tengah Semester

Nama : Dessy Ratnawatty


NPM : 2110010207
Kelas : Non Reg 5A BJB
Mata Kuliah : Teknik Kompilasi
Hari, Tanggal : Sabtu, 27 November 2021

1. Macam – Macam Translator


a. Assembler
Bahasa assembly adalah sebuah program yang terdiri dari
instruksi-instruksi yang menggantikan kode-kode biner dari bahasa
mesin dengan “mnemonik” yang mudah diingat.
b. Compiler
Compiler adalah suatu program yang menerjemahkan
bahasa program (source code) kedalam bahasa objek (object code).
Compiler menggabungkan keseluruhan bahasa program,
mengumpulkannya dan kemudian menyusunnya kembali.

c. 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.

2. Perbandingan Compiler dan Interpreter


Perbandingannya adalah ketika kita menggunakan compiler, kode
sumber akan dikonversi menjadi machine code (membuat berkas
executable) sebelum program tersebut dijalankan. Sedangkan interpreter
mengonversi source code menjadi machine code secara langsung ketika
program dijalankan. Contoh nya yaitu :

Interpreter Compiler
Menerjemahkan kode sumber Membaca keseluruhan kode
untuk 1 statemen dalam satu sumber dan kemudian
waktu menerjemahkannya secara
keseluruhan menjadi bahasa
mesin
Membutuhkan waktu yang sedikit Membutuhkan waktu yang lebih
untuk menganalisa kode sumber banyak menganalisa kode
Ujian Tengah Semester

tapi secara keseluruhan waktu program tapi waktu eksekusinya


eksekusinya menjadi lebih lambat menjadi lebih cepat
Tidak ada Intermediate Object Menghasilkan Intermediate Object
Code dihasilkan, sehingga Code yang kemudian
membuat memori efisien dihubungkan dengan yang lain,
sehingga lebih banyak
memerlukan memori
Menerjemahkan kode program Secara umum menampilkan
secara kontinu sampai kode error pesan error pada keseluruhan
pertama ditemukan, kemudian kode program. Oleh karena itu,
proses dihentikan. Oleh karena itu ketika melakukan debug menjadi
lebih mudah melakukan debug lebih sulit
Bahasa pemrograman seperti Bahasa pemrograman seperti C,
PHP, Python, Ruby menggunakan C++ menggunakan Compiler.
Interpreter.

3. Fase Proses Kompilasi

Keterangan :
a. Penganalisa Leksikal
Membaca program sumber, karakter demi karakter. Sederetan
(satu atau lebih) karakter dikelompokkan menjadi satu kesatuan
mengacu kepada pola kesatuan kelompok karakter (token) yang
ditentukan dalam bahasa sumber. Kelompok karakter yang
Ujian Tengah Semester

membentuk sebuah token dinamakan lexeme untuk token tersebut.


Setiap token yang dihasilkan disimpan di dalam tabel simbol.
Sederetan karakter yang tidak mengikuti pola token akan dilaporkan
sebagai token tak dikenal (unidentified token).

b. Penganalisa Sintaks
Memeriksa kesesuaian pola deretan token dengan aturan sintaks
yang ditentukan dalam bahasa sumber. Sederetan token yang tidak
mengikuti aturan sintaks akan dilaporkan sebagai kesalahan sintaks
(sintax error). Secara logika deretan token yang bersesuaian dengan
sintaks tertentu akan dinyatakan sebagai pohon parsing (parse tree).

c. Penganalisa Semantik
Memeriksa token dan ekspresi dari batasan-batasan yang
ditetapkan.

d. Pembangkit Kode Antara


Membangkitkan kode antara (intermediate code) berdasar-kan
pohon parsing. Pohon parse selanjutnya diterjemahkan oleh suatu
penerjemah yang dinamakan penerjemah berdasarkan sintak (syntax-
directed translator). Hasil penerjemahan ini biasanya merupakan
perintah tiga alamat (three-address code) yang merupakan
representasi program untuk suatu mesin abstrak. Perintah tiga alamat
bisa berbentuk quadruples (op, arg1, arg2, result), tripels (op, arg1,
arg2). Ekspresi dengan satu argumen dinyatakan dengan menetapkan
arg2 dengan - (strip, dash).

e. Pengoptimal Kode
Melakukan optimasi (penghematan space dan waktu komputasi),
jika mungkin, terhadap kode antara.

f. Pembangkit Kode
Membangkitkan kode dalam bahasa target tertentu (misalnya
bahasa mesin).

4. Kelemahan Metode Brute Force


a. Algoritma Brute Force langka menghasilkan algoritma yg efisien.
b. Beberapa Algoritma Brute Force lambat sehingga tidak sanggup
diterima.
c. Algoritma Brute Force tidak sekontruktif/sekreatif teknik pemecahan
duduk kasus lainnya.
Ujian Tengah Semester

5. Pohon penurunan untuk dari tata bahasa bebas kontek dengan


aturan produksi sebagai berikut:
S ----> aB | bA
A ----> a | aS | bAA
B ----> b | bS | aBB

Anda mungkin juga menyukai