Lewati ke konten

Tentang / About

Tentang Indonesiaku

Indonesiaku adalah bahasa pemrograman berbasis bytecode VM yang dibangun dengan C11. Kata kuncinya memakai Bahasa Indonesia—jika, selagi, fungsi, kelas, dan cetak—agar program dapat ditulis dan dibaca dengan istilah yang akrab.

Bahasa pemrograman dalam Bahasa Indonesia

Indonesiaku dirancang untuk memberi pilihan sintaks Bahasa Indonesia tanpa mengorbankan fitur dasar yang dibutuhkan saat menulis program: fungsi, kelas, modul, koleksi, penanganan kesalahan, JSON, dan HTTP.

Cara kerjanya

Kode .idk dikompilasi dalam satu lintasan menjadi bytecode, lalu dijalankan oleh VM berbasis stack. Implementasinya terinspirasi dari Crafting Interpreters (clox) dan tersedia terbuka di repositori.

Kode sumber (.idk)
  ↓  Scanner                    # token
  ↓  Compiler single-pass       # Pratt parser → bytecode
  ↓  Virtual machine berbasis stack
  ↓  Keluaran

Yang sudah berjalan

  • Nilai dan koleksi
    angka, boolean, string, kosong, list, dan kamus.
  • Alur program
    jika, selagi, untuk ... dalam, hentikan, dan lanjut.
  • Fungsi
    rekursi, closure, dan fungsi kelas-satu.
  • Objek
    kelas, init, diri, pewarisan (<), dan super.
  • Kesalahan
    naikkan serta coba/kecuali.
  • Modul dan pustaka
    impor, teks, daftar, matematika, kamus, JSON, dan HTTP.
  • Runtime
    GC mark-sweep, file I/O, waktu/tanggal, dan soket TCP.

Contoh yang ikut diuji

Ada todo-list berbasis command line di examples/todo_cli.idk dan server HTTP kecil di examples/todo_server.idk. Keduanya bukan aplikasi produksi; keduanya dipakai untuk menguji fitur-fitur bahasa bekerja bersama pada Linux, macOS, dan Windows.

Untuk siapa

  • Pelajar yang ingin melihat isi interpreter, bukan hanya memakai sintaksnya.
  • Pengajar yang membutuhkan contoh kecil untuk membahas compiler dan VM.
  • Orang yang tertarik pada desain bahasa pemrograman berbahasa Indonesia.

A language to think in your own words

Indonesiaku is a programming language designed so that programming can be learned and written in Indonesian. Every keyword — jika, selagi, fungsi, kelas, cetak — removes the language barrier for local beginners.

Vision & mission

To become a programming language that opens access to programming education for millions of Indonesian speakers — proving a language can be designed with non-English keywords without sacrificing features.

How it works

Indonesiaku is implemented as a bytecode virtual machine in C11, following the architecture of Crafting Interpreters (clox):

Source code (.idk)
  ↓  Scanner (lexer)              # tokens
  ↓  Single-pass compiler        # Pratt parser → bytecode, no AST
  ↓  Virtual machine (stack)     # execution + mark-sweep GC
  ↓  Output

Core features (v0.4.0)

  • Data types
    number, boolean, string, kosong, list, dictionary.
  • Control flow
    jika/jika_lain/selain, selagi, untuk ... dalam, hentikan/lanjut.
  • Functions
    recursion, closures, first-class functions.
  • OOP
    kelas, init, diri, inheritance (<), super.
  • Errors
    naikkan, coba/kecuali.
  • Modules
    impor "file.idk", cached.
  • Standard library
    text, list, math, dictionary, JSON, HTTP.
  • Infrastructure
    mark-sweep GC, file I/O, date/time, TCP sockets.

Real applications

The repository ships a Todo-list JSON DB in two forms: a command-line CRUD tool (examples/todo_cli.idk) and an HTTP REST API server (examples/todo_server.idk) — both tested automatically on Linux, macOS, and Windows CI.

Who is it for?

  • Indonesian students learning programming for the first time.
  • Schools and universities teaching programming fundamentals.
  • Education and research projects on language design.
  • Anyone who wants to code in their own language.