DISUSUN OLEH :
Puji syukur kami panjatkan atas berkat dan rahmat Tuhan Yang Maha Esa,
maka kami bisa menyelesaikan tugas modul yang berjudul “Kompilasi
dan Bahasa Assembly” dan “Interpreter dan Eksekusi” dengan harapan
semoga makalah ini bisa bermanfaat dan menjadi referensi bagi para
pembaca sehingga mengetahui materi tentang Kompilasi, Bahasa
Assembly, Interpreter, dan Eksekusi .
Modul ini sepenuhnya belum sempurna, dan untuk menjadi lebih
sempurna kami sangat membutuhkan dan mengharapkan masukan dari pihak lain,
yang dapat berupa kritik, saran maupun pesan.
Kepada semua pihak yang telah membaca modul ini , kami ucapkan
banyak terima kasih.
Penyusun
2
DAFTAR ISI
Kata Pengantar…………………………………………………….. 2
Daftar Isi
BAb I Pendahuluan……………………………………………… 3
1.1 Tujuan…………………………………………………. 3
BAB II Materi
I. Definisi Kompilasi………………………………… 5
II. Bagian- Bagian Kompilasi………………………… 5
III. Macam- Macam Translator………………………... 5
IV. Analisa…………………………………………….. 6
V. Sintesa……………………………………………... 7
VI. Bahasa Assembly…………………………………. 8
VII. Bagian- bagian dari program assembler………….. 8
VIII. Interpreter…………………………………………. 10
IX. Alur Kerja Interpreter……………………………... 11
X. Perbedaan antara Compiler dengan………………. 11
XI. Eksekusi…………………………………………… 12
XII. Contoh Ekseskusi…………………………………. 13
BAB III PENUTUP………………………………………………... 14
A. KESIMPULAN………………………………………... 14
DAFTAR PUSTAKA……………………………………………… 15
3
BAB I
PENDAHULUAN
4
BAB II
MATERI
KOMPILASI
5
Kompiler 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.
Keuntungannya, proses eksekusi dapat berjalan dengan cepat, sebab tak ada
lagi proses penerjemahan. Disamping itu, program sumber bisa dirahasikan, sebab
yang dieksekusi adalah program yang sudah dalam bentuk kode mesin.
Sedangkan kelemahannya, proses pembuatan dan pengujian membutuhkan
waktu relatif lebih lama, sebab ada waktu untuk mengkompilasi (menerjemahkan)
ada pula waktu melakukan proses linking. Perlu diketahui, program akan berhasil
dikompilasi hanya jika program tak mengandung kesalahan secara kaidah sama
sekali.
ANALISA.
Penganalisa Leksikal ( Scanner ).
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
6
karakter yang 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)
Penganalisa Sintaks ( Parser ).
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).
Penganalisa Semantik
memeriksa token dan ekspresi dari batasan-batasan yang ditetapkan. Batasan-
batasan tersebut misalnya :
- panjang maksimum token identifier adalah 8 karakter
- panjang maksimum ekspresi tunggal adalah 80 karakter, dan lain- lain.
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)
SINTESA.
Pengoptimal kode
melakukan optimasi (penghematan space dan waktu komputasi), jika mungkin,
terhadap kode antara
Pembangkit Kode Mesin
membangkitkan kode dalam bahasa target tertentu (misalnya bahasa mesin)
7
BAHASA ASSEMBLY
Source code adalah bahasa assembly, Object code adalah bahasa mesin
8
Dalam satu baris hanya ada satu label, pada umumnya Assembler membatasi
jumlah karakter yang bisa digunakan hingga 31 karakter.
Mnemonic instruksi atau pengarah Assembler dimasukan dalam
“Mnemonic field” yang mengikuti “label mnemonic”. Mnemonic instruksi
misalnya ADD, MOV, INC dan lain-lain.Sedangkan pengarah Assembler
misalnya ORG, EQU, DB dan lain-lain.
Operand ditulis setelah mnemonic, bisa berupa alamat atau data yang
digunakan instruksi yang bersangkutan.
Komentar harus diawali dengan titik koma. Sub rutin dari bagian besar
program yang mengerjakan suatu operasi biasanya diawali dengan blok
komentar yang menjelaskan fungsi sub rutin atau bagian besar program
tersebut.
END merupakan kode perintah terakhir yang menunjukan batas akhir dari
proses Assembly.
9
INTERPRETER
10
Keuntungan
Mudah bagi user, debuging cepat, penyusunan program relatif lebih
cepat dan bisa langsung diuji sekalipun masih ada beberapa kesalahan
secara kaidah dalam program.
Kekurangan
Eksekusi program lambat, tidak langsung menjadi program executable,
interpreter juga harus berada dalam memori. Jadi memori selalu digunakan
baik untuk program maupun interpreter. Disamping itu, program sumber
(source code) yaitu program aslinya tidak dapat dirahasiakan.
11
EKSEKUSI
pangkat(2, 1)
hasil = 1
for i in range(0, 1):
hasil = 2 * hasil
return hasil
Total terdapat tiga langkah yang perlu dijalankan untuk mendapatkan hasil
pangkat yang diinginkan.
12
Berikut contoh eksekusi pada fungsi pangkat :
13
BAB III
PENUTUP
A. KESIMPULAN
Dalam melakukan pembacaan suatu program yang ditulis dalam bahasa
sumber, kemudian diterjemahkan ke dalam suatu bahasa lain yang disebut bahasa
sasaran. Dalam melakukan proses penerjemahan tersebut, sudah barang tentu
kompilator akan melaporkan adanya keanehan-keanehan atau kesalahan yang
mungkin ditemukannya. Proses penerjemahan yang dilakukan oleh kompilator
interpreter dan assembler ini disebut proses kompilasi (compiling). Dengan
adanya program bantu dan tata cara pembentukan yang sistematis dan tertata
dengan baik serta pendefinisian struktur bahasa yang cermat, maka suatu
kompilator untuk bahasa yang terstruktur.
14
DAFTAR PUSTAKA
15