Judul Jurnal
PEMBUATAN KOMPILER DENGAN METODE PARSING BERUPA RECURSIVE DESCENT PARSER
Oleh
Drs. Tedy Setiadi, M.T. dan Basit Adhi Prabowo
Program Studi Teknik Infomatika
Universitas Ahmad Dahlan
Jl. Prof. Soepomo, S.H., Janturan, Yogyakarta
Abstrak
Komputer merupakan sebuah mesin digital yang diciptakan oleh manusia untuk melakukan proses-proses intelektual yang dapat dilakukan secara mekanis oleh manusia. Manusia dapat melakukan interaksi secara efektif dengan menggunakan media bahasa. Manusia melakukan komunikasi dengan bahasa manusia, sedangkan komputer hanya menerima dan memahami bahasa mesin. Bahasa pemrograman menjembatani komunikasi antara manusia
dengan komputer. Alat yang digunakan sebagai sarana untuk melakukan komunikasi dengan bahasa pemrograman adalah kompiler. Kompiler akan memeriksa sintaks dari kode sumber dengan parser, kemudian kode sumber diterjemahkan ke dalam bahasa mesin. Recursive descent parser adalah parser dengan metode top-down yang memiliki ciri secara rekursif menurunkan semua variabel dari awal sampai bertemu terminal dan tidak pernah mengambil token secara mundur (no back track). Recursive descent parser yang digunakan adalah LL(1), yaitu parser yang tidak mengandung rekursi kiri.
Kata kunci
kompiler, recursive descent parser, bahasa pemrograman
Pendahuluan
Manusia dapat melakukan interaksi secara efektif dengan menggunakan media bahasa. Bahasa memungkinkan penyampaian gagasan dan pemikiran. Bahasa pemrograman adalah bahasa yang dibuat agar manusia dapat melakukan komunikasi dengan mesin. Bahasa pemrograman menjembatani antara pemikiran manusia yang sering tidak terstruktur dengan mesin yang memerlukan kepastian untuk melakukan eksekusi. Bahasa pemrograman harus memiliki konstruksi yang dapat merefleksikan gagasan dan independen dari komputer yang dipergunakan. Bahasa pemrograman seperti ini sering disebut dengan bahasa tingkat tinggi. Bahasa tingkat tinggi lebih mudah untuk dipelajari karena bahasa yang digunakan lebih dekat dengan bahasa manusia dan tidak membutuhkan latar belakang mengenai perangkat keras.
Gagasan untuk perancangan bahasa pemrograman bisa berasal dari bahasa alami (natural language), matematika, dan bahasa pemrograman yang sudah ada. Konstruksi yang diturunkan dari bahasa alami berguna untuk kejelasan dan kemudahan pembacaan. Sebuah instruksi akan mengerjakan mirip dengan arti sesungguhnya dari instruksi tersebut dalam bahasa alami. Matematika telah banyak digunakan untuk aturan-aturan yang terdapat pada bahasa pemrograman, khususnya untuk ekspresi aritmatika dan notasi matematika. Notasi digunakan untuk mempersingkat kode program dan mempermudah pemrogram dalam pembuatan dan pembacaan ulang program. Bahasa pemrograman yang sudah ada dapat digunakan sebagai patokan dalam perancangan bahasa pemrograman.
Namun, diperlukan ketelitian pada waktu menggunakannya karena bahasa yang sudah ada tersebut bisa saja memiliki suatu kesalahan yang cukup fatal. Bahasa yang digunakan sebagai referensi dapat juga lebih dari satu bahasa pemrograman karena setiap bahasa pemrograman memiliki kelebihan dan kekurangannya masing-masing. Pengembangan sebuah kompilator merupakan pekerjaan yang tidak sederhana. Sebuah bahasa yang terlalu
kompleks akan menyulitkan pembuatan kompilator untuk bahasa tersebut. Kebanyakan pemrogram menginginkan bahasa yang sederhana, tetapi kesederhanaan dapat pula berarti kekurangan di sisi lainnya. Kesederhanaan tidak dapat dicapai dengan keterbatasan struktur dan tidak dapat dicapai dengan generalitas …
Kesimpulan
- Pembuatan kompiler merupakan masalah yang kompleks karena di dalam kompiler sendiri terdapat beberapa proses yang memiliki karakteristik dan masalah masing-masing.
- Recursive descent parser mudah untuk diimplementasikan tetapi memerlukan kehati-hatian dalam perancangannya
Saran
- Grammar dari bahasa pemrograman dapat diperluas dan ditambah dengan struktur yang lebih kompleks, seperti: penambahan prosedur dan fungsi dengan parameter, floating point, string, array, I/O file, kontrol pemilihan case, tipe data user defined, struct, class dan sebagainya
- Menambahkan error recovery dan error repair.
- Menambahkan optimasi sebelum diubah ke dalam object code atau optimasi object code yang dihasilkan.
Daftar Pustaka
[1] Crenshaw, Jack W., Ph.D., 1988, LET’S BUILD A COMPILER!,http://www.etekchalmers.se/~e8johan/compiler/
[2] Prabowo, Basit Adhi, 2006, Pembuatan Kompiler dengan Metode Recursive Descent Parser, Skripsi S1, Universitas Ahmad Dahlan Yogyakarta
[3] Utdirartatmo, Firrar, 2005, Teknik Kompilasi, Graha Ilmu, Yogyakarta
[4] Wiryana, I Made, Compiler Construction, http://www.wiryana.pandu.org/
Terdaftar di LIPI pada alamat: http://elib.pdii.lipi.go.id/katalog/index.php/searchkatalog/byId/115182