Teknik Kompilasi - Catatan Singkat Sebelum Ujian

Selamat malam semuanya. Terutama kepada teman-teman yang besok akan mengikuti ujian mata kuliah "Pengantar Teknik Kompilasi".

Wahai dosen pengantar teknik kompilasi kami. Saya belajar banyak dari ebook yang kau berikan dan yang kau tulis sendiri itu, berjudul "Teori Bahasa dan Automata". Sebuah catatan yang menarik (hanya) bagi yang yang sedang membutuhkan. Saya sebagai mahasiswa-pun membutuhkannya, karena ini mata kuliah saya, yang berarti kewajiban saya untuk mengikutinya sampai selesai. Dan sekarang saya sudah sampai pada tahap terakhir pertemuan. Tinggal satu tahap lagi untuk dapat terjun bebas menyelesaikan mata kuliah ini. Satu tahap terakhir yang dimaksud yaitu "Ujian". Ebook berisi 34 halaman ini harus saya kuasai dan saya pahami untuk mengakhiri dengan indah semua perjuangan yang telah saya lalui.

Fase-Fase Kompilasi
Pada pertemuan sebelum-sebelumnya kau juga telah memberikan beberapa tugas mengenai mata kuliah ini. Tugas pertama yaitu "Derivasi kalimat dan penentuan bahasa", "Menentukan grammar sebuah bahasa", dan "Equivalensi 2 AHD". Tugas kedua yaitu "Merubah bentuk AHN ke dalam bentuk AHD, Graph, Dan GR". Tugas ketiga yaitu "Membuat tabel preseden" dan "Transformasi bentuk CFG ke CNF". Dan tugas yang keempat yaitu mengenai "Automata Push Down (PDA/APD)".

1. Language and Grammar
Pada tugas yang pertama ini saya belajar mengenai teori bahasa. Teori bahasa ini digunakan untuk kepentingan perancangan kompilator, karena memang nama mata kuliah ini berjudul "Pengantar teknik kompilasi". Di dalam teori bahasa juga terdapat beberapa kosa kata yang tidak terdengar asing lagi, seperti prefix, postfix, substring, subsequence, concatenation, alternation, dan lain sebagainya. Saya masih sedikit ingat karena pada awal masuk kuliah saya disuguhkan oleh beberapa kata tersebut. Lalu ada lagi kata asing yang muncul, yaitu Kleene Closure dan Positive Closure, saya mengingatnya dengan perbandingan antar keduanya, yang satu ada elemen hampa dan yang satu lagi tidak.

Mengenai tugas derivasi kalimat dan penentuan bahasa, saya diajarkan untuk menentukan sebuah bahasa dari sebuah grammar. Pertama saya harus menentukan terlebih dahulu derivasi kalimat terpendeknya, kemudian menentukan derivasi kalimat umum, baru setelah itu menyimpulkan kedua kalimat tersebut hingga didapatlah suatu bahasa yang mewakili keduanya.

Kemudian nomor selanjutnya, yaitu menentukan grammar sebuah bahasa. Kebalikan dari soal nomor sebelumnya, kali ini yang dicari adalah grammarnya. Langkah pengerjaannya lebih sederhana dibanding yang tadi, kita hanya perlu menganalisis soal tersebut untuk dapat menentukan grammarnya. Bila tingkat kesulitan soalnya rendah, (katanya) mungkin hanya perlu mengedipkan mata saja, soal tersebut sudah terjawab dengan baik.

Dan soal yang ketiga yaitu mengenai equivalensi 2 AHD. AHD merupakan kepanjangan dari Automata Hingga Deterministik. Dari 2 AHD, dicari terlebih dahulu kalimat yang munkin diterima dan yang tidak diterima oleh AHD, setelah itu baru di lihat apakah 2 AHD tersebuh dikatakan equivalen atau tidak. 2 buah AHD dikatakan equivalen jika keduanya dapat menerima bahasa yang sama.

2. AHN -> AHD, Graph, dan GR
Berlanjut ke tugas yang kedua, yaitu mengenai AHN. AHN merupakan kepanjangan dari Automata Hingga Nondeterministik. Apa bedanya dengan AHD tadi? Mungkin kalian dapat bertanya kepada guru atau dosen matkul teknik kompilasi kalian, atau kalian bisa juga bertanya kepada paman Google yang katanya paranormal tersebut.

Di tugas yang ke-2 ini, dari bentuk AHN kemudian dirubah ke dalam bentuk-bentuk lainnya, yaitu bentuk AHD, Graph, dan Grammar Regular. Merubah ke dalam bentuk Grammar Reguler-lah menurut saya langkah yang cukup melelahkan. Perlu diingat, ketelitian perlu dinomor-satukan. Apabila lengah sedikit maka bentuk-bentuk lainnya akan menjadi tidak sesuai dan tidak karuan.

3. Preseden dan Chomsky
Dalam tugas yang ketiga ini yaitu mengenai Tabel preseden dan Bentuk Normal Chomsky. Preseden ini merupakan salah satu contoh dari parsing Bottom-Up, yaitu parsing yang dilihat dari bawah hingga keatas, sesuai dengan artinya. Di dalam tabel preseden, layaknya sebuah tabel biasa, terdiri dari beberapa kolom dan baris. Kemudian diisi dengan tanda panah ke kiri, ke kanan, atau keduanya. Sejenak saya jadi teringat celotehannya Raditya Dika tentang tanda panah yang kemana-mana. Oke abaikan..

Di nomor yang selanjutnya terdapat "Bentuk Normal Chomsky". Chomsky-Chomsky ini bukan coklat yang bentuknya lonjong terus dibalut dengan plastik, terus makannya dijilat-jilat. Kalo itu namanya coki-coki. Oke lanjut ya, tadi sampe mana?

Bapak Profesor Noam Chomsky
Bentuk normal Chomsky atau kalau disingkat itu menjadi CNF (Chomsky Normal Form) adalah grammar bebas konteks (CFG) dengan setiap produksinya berbentuk : A -> BC atau A -> a. Transformasi dari CFG ke CNF ini membutuhkan 4 langkah, yaitu eliminir semua produksi hampa, eliminir semua produksi unitas, terapkan prinsip batasan bentuk ruas kanan produksi, dan terapkan prinsip batasan panjang ruas kanan produksi.

Langkahnya lumayan panjang. Ibaratnya kalau kalian pengin mendekati cewek yang mahalan (bukan murahan) ya harus seperti ini. Kalian harus menghilangkan (eliminasi) semua sifat buruk yang ada di dalam diri kalian, hingga didapatlah bentuk yang sempurna (lebih baik dari sebelumnya) dari diri kalian. Karena sesuai pepatah, cewek mahal hanya untuk cowok yang mahal. Hmm terdengar aneh ya. Sepertinya lebih baik pepatah yang ini "Cewek baik hanya untuk cowok yang baik". Nah, ini baru pas.

4. Automata Push Down
Tugas keempat, tugas yang terakhir ini mengenai Automata Push Down (PDA / APD). Seperti kebanyakan penafsiran lainnya, kata terakhir dalam "tugas terakhir" ini memiliki arti yang susah dijelaskan dengan kata-kata. Mungkin seperti kata terakhir dalam "raja terakhir", yang artinya lawan terakhir yang tingkat kesulitannya lebih tinggi dibandingkan yang sebelumnya. Dan hal ini berlaku di dalam tugas terakhir ini. Entah karena saya kurang fokus saat pelajaran atau memang sepertinya benar-benar sulit.

Dari keempat tugas diatas semoga saja memberikan banyak manfaat dari apa yang sudah saya pelajari. Semoga ujian besok tidak terlalu melompat jauh dari apa yang sudah dipelajari. Selamat malam dan lanjutkan kembali aktivitas kalian wahai para penghuni alam. 

Comments

Popular posts from this blog

Jenis - Jenis Tanggung Jawab

Apa itu 'softskill' dan 'hardskill' ???

Keadilan dan Kejujuran