Makalah Teknik Kompilator - Zhulfikar Anugrah
Makalah Teknik Kompilator - Zhulfikar Anugrah
DOSEN PENGAMPU
KARTIKA SARI, S.Kom., M.Cs
DISUSUN OLEH
ZHULFIKAR ANUGRAH
172101888
Puji syukur kehadirat Tuhan Yang Maha Kuasa atas segala limpahan Rahmat,
Inayah, Taufik dan Hinayahnya sehingga saya dapat menyelesaikan penyusunan makalah
ini dalam bentuk maupun isinya yang sangat sederhana. Semoga makalah ini dapat
dipergunakan sebagai salah satu tugas struktur, petunjuk maupun pedoman bagi pembaca
dalam memahami dan mempelajari mata kuliah teknik kompilator.
Makalah ini saya akui masih banyak kekurangan karena pengalaman yang saya
miliki sangat kurang. Oleh kerena itu saya harapkan kepada para pembaca untuk
memberikan masukan-masukan yang bersifat membangun untuk kesempurnaan makalah
ini.
Zhulfikar Anugrah
i
DAFTAR ISI
ii
BAB I
1
I.5 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.
I.6 KOMPILATOR
Kompilator adalah suatu program komputer yang membaca seluruh
program dari bahasa tingkat tinggi yang dimengerti oleh manusia dan
kemudian menerjemahkan keseluruhan program tersebut dalam bahasa
mesin. Program yang sudah diterjemahkan tersebut akhirnya akan
dijalankan oleh komputer.
2
BAB II
II.1 REGEX
a. Bahasa, atau bahkan mirip bahasa pemrograman mini untuk
mendeskripsikan dan memparsing string atau teks
b. Notasi yang dapat digunakan untuk mengolah teks.
c. Sering digunakan untuk “search and replace”.
d. Pengungkapan atau proses menyatakan bahasa reguler atau Operasi
reguler yang digunakan untuk membentuk suatu bahasa.
II.2 EKSPRESI REGULER
Ekspresi regular (disingkat ER) adalah pola (pattern) suatu untai dari suatu
Bahasa.
Notasi espresi regular yang akan digunakan adalah :
“*” Karakter asterisk menunjukkan symbol dari suatu untai dapat tidak
muncul atau muncul sebanyak n kali.
“+” Karakter plus pada posisi superskrip menunjukkan bahwa symbol dari
suatu untai dapat muncul satu kali atau muncul sebanyak n kali.
“” Berfungsi sama seperti “+”. Maknanya sama seperti kata “atau”
“.” Karakter titip bearti konkatenasi. Maknanya sama seperti kata “dan”.
Lambang titik boleh dihilang. Jadi a.b umumnya ditulis ab.
II.3 TOOL REGEX
a. Ditemui di grep, QED, AWK, emacs, vi.
b. Salah satu tool yang dapat digunakan untuk belajar RE adalah Regex
Coach.
c. Notepad++, Notepad2, OpenOffice, RegexBuddy, PowerGREP.
d. Regexstudio.com & Kodos.sourceforge.net.
II.4 ANALOGI REGEX
a. RE dapat dianalogikan dengan berbagai function pengolah string pada
bahasa pemrograman yang belum mendukung RE. Misalnya strcmp(),
length(), mid(), trim(), substr(), pos(), strstr() dan lain-lain.
b. RE juga bisa dianalogikan/mirip dengan fungsifungsi WildCardpada
DOS/UNIX untuk pengelolaan file.
3
c. Hati-hati jika salah menggunakan RE, misal mencari kata “cat”maka
“vacation”akan ikut ditemukan.
II.5 ATURAN REGEX
a. Leftmost(Suatu penguraian /penurunan
dikatakan leftmost derivation bila setiap tahapan penurunan variabel /
non terminal terkiri yang diuraikan)
b. Quantifier is greedy(akan cocok dengan string terpanjang)
c. Rightmost(Apabila setiap tahapan penurunan variabel / non terminal
paling kanan yang diuraikan disebut rightmost deriva tion)
II.6 CONTOH KASUS
Seorang programmer harus membuat sebuah tool, yang dapat mengecek
kata-kata yang dobel seperti ''kemarin-kemarin", Tugas programmer itu
adalah membuat program yang :
Menerima banyak file untuk diperiksa, melaporkan setiap baris yang
memiliki kata yang dobel, di-highlight, dan nama file akan muncul pada
setiap file yang dilaporkan.
Mampu memeriksa pada seluruh baris, bahkan untuk kata yang ada diakhir
baris dan kata yang sama berikutnya ditemukan pada awal baris.
Mampu mencari kata yang dobel secara incase-sensitive, seperti “Lagi
lagi”, dan walaupun dipisahkan oleh banyak white-space karakter
sekalipun.
Mampu mencari kata dobel yang ada di teks HTML atau memiliki karakter
tag. Seperti contoh ini: '…it is <B>very</B> very important
Dengan RE kita dapat meng-highlightkata yang ulang, membuang setiap
baris yang tidak ada kata yang ulangnya, dan kita bisa membuat setiap
baris menampilkan nama filenya.
4
BAB III
III.2 GRAMMAR
Bahasa adalah himpunan kalimat-kalimat. Anggota Bahasa bisa tak
hingga kalimat
Simbol-simbol Terminal:
a. Huruf kecil awal alfabet, misal x, y, z
b. Simbol operator, misal +, -, dan x
c. Simbol tanda baca, misal (,), dan ;
d. String yang tercetak tebal, misal, if, then, dan else
Simbol-Simbol Non Terminal:
a. Huruf besar awal alfabet, misal X, Y, Z.
b. Huruf S sebagai simbol awal.
c. String yang tercetak miring, misal expr dan stmt.
5
Pada tipe 2 ini "simbol sebelah kiri harus simbol variabel". Tipe 2
menggunakan mesin automata dengan Push Down Automata.
4. Tipe 3 (Regular)
Pada tipe 3 ini "simbol sebelah kiri harus berupa simbol variabel dan
simbol sebelah kanan maksimal hanya memiliki sebuah simbol variabel
dan bila ada terletak di paling kanan". Tipe 3 menggunakan mesin
automata dengan Finite State Automata DFA dan NFA.
6
BAB IV
IV.3 TOKEN
Token adalah level entitas yang paling rendah dari diagram sintaks
a. Identifiers (contohnya variable atau nama fungsi)
b. Keyword (seperti while, if, function, dll)
c. Operator ( +, =, *, ++, +=, dll)
d. Literal (nilai konstanta seperti 27, “hello”, dll)
e. Punctutation (“;” , ”:” , ”,” , dll)
7
IV.4 DIAGRAM TRANSISI
Sebagai langkah antara di dalam membentuk analis leksikal,
dibuatlah satu diagram transisi.
Diagram transisi atau diagram peralihan adalah stylized flowchart
yang dibentuk sebagai langkah antara dalam pembentukan token pada
analisis leksikal.
Diagram transisi menggambarkan aksi yang dilakukan apabila
analisis leksikal dipanggil untuk memperoleh token berikutnya.
8
BAB V
9
V.4 TATA BAHASA BEBAS KONTEKS
TATA BAHASA BEBAS KONTEKS
Sebuah tata Bahasa dimana tidak terdapat pembatasan pada hasil
produksinya.
Contoh:
B -> CDeFg
D -> BcDe
A -> BaD
Z -> YYwX
10