Abstrak Dokumen ini menjelaskan cara instalasi (pemasangan) dan pemakaian perangkat lunak (software atau program) penerjemah Lingu ke bahasa pemrograman Java. Lingu adalah bahasa spesifikasi perancangan program basis data yang dapat diverifikasi. Bahasa ini dikembangkan sebagai bagian dari Riset Unggulan Terpadu Internasional (RUTI) Fasilkom UI, lihat grammar (tatabahasa) nya di lampiran
A. . Bahasa ini bersifat sederhana untuk memudahkan user memberikan spesifikasi program yang kemudian dapat diperiksa/verifikasi kebenarannya. Namun bahasa ini belum bisa dikompilasi untuk menghasilkan output yang bisa dipakai. Untuk itulah dikembangkan penerjemah Lingu ke Java agar dapat diperoleh output yang dapat mengimplementasikan spesifikasi yang direpresentasikan dalam bahasa Lingu. Sebelumnya, penerjemah MuPL2Java dikembangkan dengan maksud yang serupa. Dari hasil penelitian yang dilakukan, MuPL dikembangkan lebih lanjut menjadi Lingu untuk penyederhanaan aspek verifikasi. Tehnik pengembangan MuPL2Java, yang dikembangkan dengan menggunakan JLex dan JavaCUP, berbeda dengan penerjemah Lingu ke Java yang menggunakan tehnik attribute grammar UUAG. Pendahuluan Secara umum, penerjemahan adalah suatu proses untuk mengubah bentuk, yaitu dari bentuk yang satu ke bentuk yang berbeda. Dalam istilah linguistik, penerjemahan berhubungan erat dengan proses transformasi dari suatu bahasa tertentu ke dalam bahasa lain, dengan mempertahankan arti yang terkandung di dalam bahasa yang diterjemahkan. Aktor dalam penerjemahan biasa kita sebut sebagai penerjemah. Istilah penerjemah dapat merujuk kepada seorang manusia maupun suatu alat bantu otomasi yang dibangun oleh manusia.
1 Bagian dari proyek RUTI II tahun 2003, didanai oleh Kementerian Riset dan Teknologi, Republik Indonesia
Penerjemahan bukanlah suatu pekerjaan yang trivial, baik dikerjakan oleh manusia ataupun alat bantu. Untuk menghasilkan hasil penerjemahan yang akurat, diperlukan aturan-aturan mengenai tata cara penerjemahan yang harus dilakukan. Aturan-aturan ini terkait erat pada bahasa yang akan diterjemahkan dan bahasa yang akan dihasilkan. さらに, kita akan merujuk pada kedua bahasa tersebut dengan sebutan bahasa sumber dan bahasa target. Untuk memperoleh hasil yang benar, terdapat aspek-aspek yang perlu diperhatikan. Pada dasarnya, aspek penting dalam penerjemahan terdiri atas tata bahasa dan semantik dari masing-masing bahasa sumber dan bahasa target. Tata bahasa menentukan aturan mengenai bagaimana sebuah bahasa itu ditulis atau digunakan, sedangkan semantik memberikan arti dari bahasa tersebut. Dalam kaitannya dengan bahasa pemrograman, tata bahasa mendefinisikan aturan-aturan yang ketat dan kaku mengenai bagaimana layaknya kita menyusun suatu bahasa. Suatu bahasa tidak diperkenankan untuk memiliki arti yang ambigu, di mana suatu kalimat dalam bahasa tertentu hanya boleh memiliki satu dan hanya satu arti. Oleh karena itu, kita mendapatkan semantik yang unik untuk masing-masing kalimat yang unik. Di sisi lain, bahasa-bahasa komunikasi seperti: Bahasa Inggris, Bahasa Indonesia, など, memiliki fleksibilitas lebih pada tata bahasanya. Meskipun kita melanggar aturan tata bahasa tertentu pada bahasa komunikasi, terkadang masih dimungkinkan untuk memahami arti dari kalimat tersebut. Ini adalah alasan mengapa bahasa komunikasi dikenal juga sebagai bahasa yang ambigu, di mana persepsi dari suatu kalimat antara satu pihak dengan pihak yang lain bisa berlainan. そう, kita perlu mengerti tata bahasa dan semantik dari tiap-tiap bahasa secara mendalam sebelum kita dapat menerjemahkannya. Langkah pertama dalam penerjemahan adalah memahami arti dari apa yang hendak kita terjemahkan. Langkah ini dilakukan dengan mencocokkan masukan yang ada dengan tata bahasa dan semantik dari bahasa sumber. Kemudian arti yang diperoleh disusun ke dalam bahasa target berdasarkan tata bahasa dari bahasa target untuk merepresentasikan semantik yang sesuai. Langkah ini harus dilakukan secara berhati-hati untuk menghasilkan arti yang sama antara bahasa sumber dan bahasa target. Penerjemah Lingu ke Java Lingu adalah sebuah bahasa tingkat tinggi yang difokuskan pada transaksi basis data. Walaupun demikian, apabila dibandingkan dengan bahasa SQL, Lingu adalah bahasa yang lebih sederhana dan berbeda dari cara penulisan. Akan tetapi, Lingu menawarkan beberapa fitur-fitur yang dapat dipertimbangkan sebagai alternatif yang menarik, antara lain: 1. Lingu merupakan bahasa abstrak sehingga memungkinkan logika pada Lingu pada tingkatan yang lebih tinggi. 2. Lingu merupakan bahasa yang kecil dan sederhana. Dengan kesederhanaan Lingu, bahasa ini lebih mudah digunakan.
3. Lingu memiliki dukungan untuk uji coba dan validasi. Hal ini memberikan opsi untuk menjaga kesesuaian program yang dibuat dengan fungsi yang didefinisikan. 4. Lingu dapat diverifikasi dengan menghasilkan kondisi-kondisi verifikasi yang dapat dibuktikan dengan menggunakan alat bantu pembuktian teori (theorem prover). Fitur-fitur yang diberikan Lingu memungkinkan penggunaannya sebagai landasan spesifikasi untuk suatu sistem. Dengan adanya kemampuan untuk memverifikasi dan mengujicobakan Lingu, maka implementasi sistem, terutama yang sifatnya kritikal, mampu dijamin validitasnya. Walaupun demikian, Lingu merupakan bahasa yang tidak dapat dieksekusi. Oleh karena itu, dibutuhkan transformasi dari bahasa Lingu di tingkat abstrak menjadi bahasa yang sifatnya kongkrit, yaitu program komputer. Java diambil sebagai pilihan untuk bahasa target dari hasil transformasi Lingu. Ide pengembangan penerjemah Lingu ke Java adalah untuk mengotomatisasi transformasi bahasa Lingu menjadi bahasa Java. Lingu dapat digunakan untuk melakukan verifikasi terhadap program yang hendak dibuat. Dengan menggunakan penerjemah Lingu ke Java, spesifikasi yang sudah terbukti kebenarannya dapat dihasilkan program Java. Idealnya, program yang dihasilkan tidak terpaku pada bahasa Java saja. Fokus sistem hanya bertumpu pada spesifikasi yang dituliskan dalam Lingu dan kemudian dapat direalisasikan ke dalam berbagai macam bahasa pemrograman sebagai bentuk konkrit sesuai dengan kebutuhan. Penerjemah Lingu ke Java dikembangkan dengan menggunakan sistem UUAG sebagai alat bantu. UUAG merupakan sistem attribute grammar yang dihasilkan oleh Universitas Utrecht. Sistem tersebut membantu pengembangan aplikasi yang tergolong dalam kelompok kompilator yang mencakup aplikasi penerjemah. Hasil akhir implementasi adalah aplikasi dalam bahasa pemrograman Haskell. Penerjemah Lingu ke Java dapat dimodifikasi untuk menghasilkan penerjemah-penerjemah lainnya yang berfungsi untuk menerjemahkan Lingu ke dalam bahasa-bahasa pemrograman lain. Hal ini dilakukan dengan hanya mendefinisikan aksi semantik penerjemahan untuk target bahasa yang baru dan kemudian digunakan sebagai pengganti definisi aksi semantik penerjemahan yang lama.
selengkapnya bisa dibaca dari sumber aslinya