Pearl adalah bahasa pemrograman eksperimental yang saya kembangkan menggunakan JavaScript. Pearl mencoba menghadirkan cara berpikir pemrograman yang lebih alami dan penutur Bahasa Indonesia.
Pearl bukan hanya sekadar proyek iseng, tapi juga eksperimen desain bahasa - bagaimana kalau kita membuat bahasa pemrograman yang tidak perlu dengan kata "if", "while", atau "print", namun jika, ulangi, dan tampilkan?
Dibalik itu semua, Pearl adalah interpreter baris-demi-baris yang memetakan setiap instruksi berbasis token ke modul modular seperti masukan.js, jika.js, ulangi.js, dan lainnya.
Kenapa Saya Membuat Pearl?
Motivasi sederhananya:
- Bahasa lokal, akses lebih mudah. Banyak pemula kesulitan belajar karena sintaks terasa asing. Pearl menjembatani itu.
- Eksperimen desain. Saya ingin tahu, bagaimana pengalaman "membuat bahasa sendiri" - dari tokenizer, memory, kontrol alur, hingga REPL.
- Modularitas. Dengan sistem modular berbasis Node.js, Pearl mudah dikembangkan, diajarkan, atau di-fork.
Contoh Kode Pearl
tampilkan "Halo," + :nama:
:nama: adalah data nilai yang Anda masukkan untuk mencetak di tampilkan oleh :nama: itu sendiri.
Struktur Internal Pearl
Setiap baris dalam Pearl diproses dengan sistem seperti ini:
- Tokenizer: memecah baris menjadi token (tokenize.js)
- Executor: token pertama (misalnya tampilkan) dipetakan ke modul (tampilkan.js)
- Interpreter: modul menangani logika berdasarkan token dan memory.
- Daftar (array) dan daftar bersarang
- Dikta (object)
- Kelas dan instance: mendukung atribut dan tipe khusus
Fitur unggulan Pearl
- Bahasa alami: semua perintah dalam Bahasa Indonesia, beberapa sedikit persen bahasa Inggris.
- Modular: setiap instruksi diatur di file berbeda.
- REPL dan File Mode
- Struktur data lengkap: list, objek, kelas
- Akses data kompleks
Cara Menjalankan Pearl
1. Klon atau gandakan repositori:
cd pearl
npm install
2. Buat file .pearl
tampilkan "Selamat datang, " + nama
3. Jalankan
node index.js nama_file_kamu.pearl
atau masuk ke REPL:
node index.js
Ingin Lihat Isi Memori?
Pearl punya perintah khusus untuk debugging:
tampilkan memory
Ini akan mencetak isi memory dengan struktur penuh cocok untuk melihat state saat runtime.
Yuk Kontribusi!
Pearl masih dalam tahap pengembangan dan terbuka untuk:
- Saran fitur
- Perbaikan bug
- Kolaborasi desain sintaks
- Pull request modul baru
Jangan ragu untuk memberi feedback, atau clone dan coba sendiri. Siapa tahu kamu dapat berkontribusi di Pearl berikutnya!
#programming #language-design #interpreter #javascript #opensource #indonesia
Tidak ada komentar:
Posting Komentar