DEV Community

Nazwa Shabrina Zain
Nazwa Shabrina Zain

Posted on • Edited on

Apa Itu Earl?

Teks ini beberapa dibuat oleh AI

Earl adalah bahasa pemrograman eksperimental yang saya kembangkan menggunakan JavaScript. Earl mencoba menghadirkan cara berpikir pemrograman yang lebih alami dan penutur Bahasa Indonesia.

Earl 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, Earl 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 Earl?
Motivasi sederhananya:

  • Bahasa lokal, akses lebih mudah. Banyak pemula kesulitan belajar karena sintaks terasa asing. Earl 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, Earl mudah dikembangkan, diajarkan, atau di-fork.

Contoh Kode Earl

masukkan :nama:
tampilkan "Halo," + :nama:
Enter fullscreen mode Exit fullscreen mode

Penjelasan:
:nama: adalah data nilai yang Anda masukkan untuk mencetak di tampilkan oleh :nama: itu sendiri.

Struktur Internal Earl

Setiap baris dalam Earl 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.

Earl menyimpan semua variabel dan objek disebuah memori bersama global yaitu memory.js dan menangani struktur data kompleks seperti:

  • Daftar (array) dan daftar bersarang
  • Dikta (object)
  • Kelas dan instance: mendukung atribut dan tipe khusus

Fitur unggulan Earl

  • 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 Earl

  1. Klon atau gandakan repositori:
   git clone https://github.com/aflacake/earl-lang
   cd earl-lang
   npm install
Enter fullscreen mode Exit fullscreen mode
  1. Buat file .earl
   masukkan :nama:
   tampilkan :nama:
Enter fullscreen mode Exit fullscreen mode
  1. Jalankan
   node index.js nama_file_kamu.earl
Enter fullscreen mode Exit fullscreen mode

atau masuk ke REPL:

   node index.js
Enter fullscreen mode Exit fullscreen mode

Ingin Lihat Isi Memori?

Pearl punya perintah khusus untuk debugging:

tampilkan memory
Enter fullscreen mode Exit fullscreen mode

Ini akan mencetak isi memory dengan struktur penuh cocok untuk melihat state saat runtime.

Yuk Kontribusi!

Earl masih dalam tahap pengembangan dan terbuka untuk:

  • Saran fitur
  • Perbaikan bug
  • Kolaborasi desain sintaks
  • Pull request modul baru

Kalau kamu tertarik dengan desain bahasa, sistem interpreter, atau mengajar pemrograman lokal, dengan senang hati saya bisa berdiskusi denganmu.
Jangan ragu untuk memberi feedback, atau clone dan coba sendiri. Siapa tahu kamu dapat berkontribusi di Pearl berikutnya!

Top comments (1)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.