Implementasi interpreter dan compiler bukanlah hal yang sulit, ini terbukti dari sudah adanya implementasi interpreter, compiler, dan translator program di berbagai tugas akhir mahasiswa sejak tahun 1981 (bisa di cek di perpustakaan Informatika ITB, dan saya yakin Ilmu Komputer UI/UGM/IPB juga memiliki banyak tugas akhir semacam ini). Buku mengenai pembuatan interpreter berbahasa Indonesia juga sudah ditulis, sejak 1984 (misalnya KILANG 002: BASIC dalam Bahasa Indonesia, Jakarta: Kesaint Blanc, 1984), dan satu lagi yang diterbitkan di tahun 1995 (Tuntunan Praktis Pemrograman Merekayasa Interpreter: Sebuah Penerapan Teknik Kompilasi, Sukamdi, 1995 ISBN :979-637-744-6 ), dalam buku yang ditulis Sukamdi ditunjukkan mengenai pembuatan bahasa ALIN untuk memproses ekspresi aljabar linier.
Bahasa KILANG dibuat oleh Prof.Dr.Ir.Dali Santun Naga KILANG
merupakan singkatan dari Kaidah Informasi Lambang Aneka Nalar dan Guna,
di tahun 1984 bahasa ini sudah mencapai versi 2. Bahasa KILANG ini
pernah dibahas di Seminar Komputer dan Diskusi Ilmiah Dies Natalis III
Himpunan Mahasiswa Informatika ITB, Bandung, 19 Maret 1986 "Dua Tahun
KILANG 002: Kisah Singkat tentang Pendomestikasian Bahasa Komputer".
Sayangnya saat ini belum terdengar lagi kelanjutannya.
Dua bahasa pemrograman yang saat ini masih kembangkan oleh putra
Indonesia secara open source adalah bahasa Qu dan bahasa BAIK. Bahasa Qu
sudah bisa dipakai sejak 2002, definisi bisa dipakai adalah
interpreternya sudah berjalan. Di tahun 2007 Qu sudah memiliki banyak
fitur dan didokumentasikan dengan baik. Bahasa Qu ditujukan sebagai
bahasa umum (general purpose language). Bahasa Qu yang bersifat open
source ini sudah dipakai untuk membuat aplikasi web dan aplikasi
komersial.
Sementara bahasa BAIK yang baru dikembangkan sejak tahun 2008, sudah
memiliki interpreter di tahun yang sama, dan di tahun 2009-2010 sudah
ada 3 naskah ilmiah (paper) nasional dan internasional yang membahas
bahasa BAIK. Bahasa BAIK ditujukan untuk pembelajaran pemrograman.
Source code baik juga terbuka untuk umum. Sebagai tambahan informasi,
bahasa baik berusaha menggunakan bahasa Indonesia, mirip seperti yang
dilakukan bahasa KILANG.
Bahasa Qu
Lisensi: GPL
Pengembang: Marc Krisnanto
Rilis awal: 2002
Rilis terbaru: 2009
Naskah Ilmiah: -
Platform: Unix based (kemungkinan bisa dijalankan di Windows dengan Cygwin)
Website: http://www.qu-lang.org
Implementasi awal bahasa ini hanya dikembangkan dalam beberapa minggu saja (referensi: http://www.qu-lang.org/about.htm),
dan masih terus dikembangkan dengan rilis terakhir tahun 2009. Bahasa
ini cukup sederhana (seperti python) jadi bisa dipelajari dengan mudah
oleh pemula, tapi juga memiliki berbagai fitur "advanced" (coroutine,
list comprehension, function and method currying, dsb), sehingga bisa
digunakan juga oleh programer tingkat lanjut.
Salah satu kelebihan yang saya lihat dari bahasa ini dibanding sebagian besar bahasa lain adalah: bahasa ini memiliki strong semi-dynamic typing/optional static typing,
artinya sebagian variabel bisa diberi tipe, sebagian lagi tidak. Ini
merupakan kompromi dari kemudahan berbagai bahasa terinterpretasi
seperti PHP yang sama sekali tidak mengenal tipe (sehingga tidak bisa
mengoptimasi pengunaan memori), dengan bahasa yang sangat strict
(seperti Java).
Interpreter bahasa ini diimplementasikan dalam C dengan parser yang
ditulis tangan (tidak dihasilkan oleh parser generator). Source code
yang diberikan mudah dikompilasi, dan sudah menyertakan skrip
"configure" (sehingga bisa menyesuaikan diri dengan berbagai platform
UNIX yang ada). Implementasi interpreter bahasa ini sudah menyertakan
banyak modul built-in (seperti Big Integer, List, Tree), dan tersedia
juga package untuk parsing XML (dengan Expat), membuat aplikasi GUI
(dengan GTK), dan bahkan melakukan koneksi dengan database (Mysql). Jika
Anda masih butuh yang lebih, Anda bisa mengimplementasikan fungsi dalam
C dan memanggilnya dari Qu, atau sebaliknya Anda bisa mengembed bahasa
Qu ke program C.
Meskipun tidak/belum ada paper ilmiah mengenai bahasa ini,
dokumentasi bahasa ini sangat lengkap, mulai dari syntax/grammar sampai
dokumentasi fungsi dan kelas yang tersedia. Selain dalam bentuk
referensi, dokumentasi berupa tutorial juga tersedia. Tapi tentu saja
jangan dibandingkan dengan bahasa yang sudah matang seperti python yang
punya tutorial sangat detail, tutorial yang diberikan pada dokumentasi
Qu cukup singkat. Untuk orang yang baru belajar pemrograman mungkin
tidak cocok, tapi sangat cocok untuk orang yang sudah mengenal berbagai
bahasa lain seperti Python dan Perl.
Penulis bahasa ini tidak membuat bahasa untuk tujuan pengajaran, tapi
karena dia frustasi dengan bahasa yang sudah ada. Jadi bahasa ini tidak
memiliki tujuan yang spesifik. Tapi ini bukanlah sebuah kekurangan,
bahasa-bahasa open source seperti PHP, Perl, Python dan Ruby juga tidak
memiliki tujuan khusus di awal, hanya untuk keperluan penciptanya saja.
Mungkin satu-satunya kritik saya adalah: saat ini tidak ada versi yang
bisa diakses dengan versioning management (misalnya CVS atau git),
padahal saya ingin melihat perkembangan bahasa ini. Sementara kode
program juga tidak mencantumkan tanggal, dan versi lama tidak bisa
didownload lagi.
Saya sudah mengkonfirmasi dengan penulis mengenai keluhan terakhir,
dan masalah utama yang dihadapi adalah kesibukannya dan koneksi internet
di Indonesia yang sering kurang stabil. Namun di masa depan kemungkinan
akan disetup sebuah sistem (via sourceforge misalnya) agar lebih mudah
bagi pihak yang ingin berkontribusi.
Secara singkat, sisi negatif dan positif bahasa Qu adalah sebagai
berikut (perhatikan bahasa sisi negatif ini hanya untuk versi saat ini,
masih bisa terus diperbaiki):
Positif
- Memiliki fitur advanced
- Memiliki dokumentasi yang lengkap
- Memiliki banyak package
- Struktur program sangat baik (bisa digunakan oleh orang yang ingin belajar pembuatan interpreter)
- Sudah dipakai di dunia nyata (situs http://www.ina.travel/ dan program accounting http://www.gate17.net/)
Negatif
- Kurang dipromosikan sehingga kurang dikenal
- Versi lama tidak bisa didownload
- Belum ada naskah ilmiah yang membahasnya (namun tujuan bahasa ini bukan untuk pengajaran jadi sepertinya memang tidak diperlukan, sementara itu dokumentasi sudah cukup lengkap)
Bahasa BAIK (Bahasa Anak Indonesia untuk Komputer)
Lisensi: source terbuka tapi mungkin tidak memenuhi syarat open source menurut OSI
Pengembang: Haris Hasanudin
Rilis awal: 2008
Rilis terbaru: 2010
Naskah Ilmiah: 3 paper
Platform: UNIX based (Linux, Solaris), Windows
Bahasa ini dikembangkan oleh Haris Hasanudin sejak tahun 2008. Tujuan
bahasa ini adalah untuk pengajaran pemrograman dengan menggunakan
Bahasa Indonesia. Dokumentasi bahasa ini masih minimal, tapi naskah
ilmiah tentang BAIK telah dipublikasikan di dua konferensi internasional
dan jurnal nasional sebagai berikut:
- Basic Design of BAIK = Scripting Language with Indonesian Lexical Parser for Internet-based Software Development, Proc. of Int. conf. on Advance Computer Science and Information System - ICACSIS 2009.
- BAIK (Bahasa Anak Indonesia untuk Komputer) = Programming Language based on Indonesian Lexical Parsing for Multi-Tier Web Development, Journal on Computer Science and Information (JIKI) June 2010, Universitas Indonesia.
- BAIK Language for Visual Programming with Indonesian Natural Language, Int. MALINDO Workshop 2010.
Bahasa ini dapat digunakan untuk mengajarkan konsep prosedural dan
object oriented. Bahasa ini tidak mengandung aneka fitur "advanced"
seperti Qu, tapi menurut saya itulah kelebihan bahasa ini yaitu
kesederhanaannya. Tidak seperti Qu yang tidak menyertakan dukungan GUI
secara default, bahasa ini mendukung GUI sebagai bagian dari bahasanya.
Anda juga bisa melakukan koneksi SQL ke Postgres dan Oracle, serta
melakukan koneksi TCP/IP. Pemrograman web dengan CGI pun bisa dilakukan.
- Dari segi pengguna BAIK, bahasa ini sepertinya cocok untuk pemula (sesuai tujuannya), tapi kurang cocok untuk pengembangan aplikasi yang besar. Tidak ada pemisahan modul, dan semua statement "pakai_xx" (pakai_layar, dsb) merupakan sesuatu yang dihardcode (bandingkan dengan Qu). Mungkin pemisahan modul bisa menjadi fitur bahasa ini di masa depan, karena itu akan mengajari pemakai bahasa BAIK mengenai code reuse.
Bahasa ini diimplementasikan dalam C, dan masih banyak hal yang bisa
diperbaiki dari implementasi interpreternya. Misalnya semua nama fungsi
di library seperti "gambarpoligon" di-hardcode di bagian Lexer.
Masih ada memory error dan memory leak ketika diperiksa dengan
valgrind, dsb. Saya menghubungi langsung pembuat bahasa ini untuk
perbaikan beberapa hal tersebut, dan respon pembuat bahasa ini menurut
saya sangat baik. Saat ini implementasi bahasa BAIK masih kurang cocok
dipelajari untuk Anda yang ingin belajar pembuatan interpreter
(designnya monolitik). Mungkin di masa depan implementasinya juga bisa
ditingkatkan agar lebih mudah dipelajari.
Secara singkat, sisi negatif dan positif bahasa BAIK adalah sebagai
berikut (perhatikan bahwa sisi negatif ini hanya untuk versi saat ini,
masih bisa terus diperbaiki):
Positif
- Cocok untuk pemula
- Banyak contoh program disertakan
- Sudah ada beberapa naskah ilmiah ditulis mengenai bahasa ini
- Pemrograman grafik, database, dan web mudah dilakukan
- Buku panduan bahasa baik tersedia secara gratis
Negatif
- Bahasa BAIK belum mendukung pemrograman modular
- Implementasi dalam C kurang modular
sumber :
http://yohan.es/bahasa-pemrograman-indonesia/
0 komentar:
Posting Komentar