Membuat DSL (Domain Specific Language) dengan bahasa pemrograman Scala relatif mudah. Walaupun Scala adalah bahasa pemrograman static, tapi untuk urusan membuat DSL tidak kalah mudahnya dibanding bahasa pemrograman dinamis seperti Ruby atau Groovy. Kali ini kita akan membuat program DSL tanggal, program ini bukan buatan saya tetapi saya mengadopsi program yang dibuat oleh Sergio Lopes dan Paulo Renato dan saya mengubahnya dalam dialek bahasa Indonesia.
Begini ilustrasi DSL yang akan kita buat
Kemarin ditambah 15 hari dan dikurangi 19 tahun
Jika perintah tersebut dieksekusi dan dicetak ke layar maka akan muncul tanggal. Tanggal tersebut tergantung kapan kita mengeksekusi program. Berikut ini source code-nya:
Jika Anda mendapat masalah dalam menampilkan source code atau source code tidak muncul, Anda bisa mengakses halaman ini.
Petunjuk khusus bagi yang masih awam dalam menggunakan Scala (asumsi Scala sudah terinstall dalam sistem Anda):
- Buat file dengan nama Tanggal.scala kemudian salin source code Tanggal.scala seperti tercantum di atas. Kemudian simpan file tersebut
- Dalam folder yang sama, buat file dengan nama Coba.scala kemudian salin source code Coba.scala seperti tercantum di atas. Kemudian simpan file tersebut
- Buka terminal/command-prompt, masuk ke folder tempat kedua file tersebut disimpan. Kemudian ketik “fsc Tanggal.scala Coba.scala” (tanpa tanda kutip)
- Bila berhasil, coba jalankan program dengan mengetik “scala Coba” (tanpa tanda kutip)
- Anda dapat bereksperimen dengan file Coba.scala untuk mencoba berbagai variasi tanggal yang ingin dihitung. Namun jangan lupa untuk melakukan kompilasi setiap kali merubah source code.
Selamat mencoba.
Wuih keren artikelny gik.
Kebetulan aq jg lg tertarik ama DSL
Sama mas, aku jg lg nunggu buku DSLs in Action kl ga salah Oktober 2010, skrg masi MEAP
idem, lg nunggu.
tp kl ga salah Martin Fowler jg punya buku DSL kok. cm aq blm dpt ebookny
O aku malah baru tahu. Googling Martin Fowler ketemu DSL Book WIP, sptnya bukunya belum selesai padahal uda mulai ditulis tahun 2007.
btw thx infonya