Skip to content

Repository files navigation

Maskot NusaCode

NusaCode

Bahasa pemrograman dwibahasa dari Indonesia untuk pembelajaran, riset, dan pengembangan perangkat lunak.

CI · Referensi Bahasa · Roadmap · Kontribusi · Dukung NusaCode

Tentang NusaCode

NusaCode adalah bahasa pemrograman eksperimental dengan identitas sintaks sendiri: penugasan memakai <-, perbandingan memakai =, dan blok ditutup dengan kata kunci eksplisit seperti akhir_jika. Kata kunci Indonesia dan Inggris memiliki perilaku yang sama sehingga bahasa ini mudah dipelajari secara lokal tanpa menutup kolaborasi internasional.

Implementasi referensi ditulis dengan Rust dan dapat menjalankan berkas .nusa pada Windows, Linux, dan macOS. Implementasi assembly x86-32 yang mengawali riset proyek tetap dipertahankan di src/*.asm sebagai backend eksperimental.

NusaCode diciptakan oleh Muhammad Arif Triyana, mahasiswa Teknik Informatika di Universitas Catur Insan Cendekia.

Status: rilis awal 0.1.0. Interpreter sudah dapat dipakai untuk eksperimen dan pembelajaran, tetapi kompatibilitas sintaks, API, keamanan sandbox, dan performa belum dijamin untuk beban produksi sebelum versi 1.0.

Contoh

fungsi faktorial(n) maka
    jika n <= 1 maka
        kembalikan 1
    akhir_jika
    kembalikan n * faktorial(n - 1)
akhir_fungsi

ubah hasil <- faktorial(6)
tulis("Hasil: " + ubah_teks(hasil))

Padanan Inggris dapat dipakai dalam program yang sama:

function kuadrat(x) do
    return x * x
end_function

let nilai <- kuadrat(9)
print(nilai)

Kemampuan rilis 0.1

  • CLI run, check, dan REPL interaktif.
  • Lexer Unicode dengan posisi baris dan kolom.
  • Parser ekspresi dengan prioritas operator dan blok eksplisit.
  • Bilangan bulat 64-bit, desimal 64-bit, teks Unicode, logika, dan kosong.
  • Daftar, kamus, pengindeksan, serta indeks negatif untuk daftar dan teks.
  • Percabangan, perulangan selama, dan rentang untuk inklusif.
  • Fungsi, closure, rekursi, nilai kembali, dan pembatas kedalaman panggilan.
  • Alias kata kunci dan fungsi baku Indonesia–Inggris.
  • Diagnostik berbahasa Indonesia dengan lokasi sumber.
  • Dukungan VS Code untuk highlighting, snippet, ikon, Run, dan Check.
  • Situs dokumentasi React + TypeScript di website/.

Lihat matriks terverifikasi di docs/STATUS_IMPLEMENTASI.md.

Memasang dan membangun

Prasyarat: Rust stable.

git clone https://github.com/hairift/Nusa-Code.git
cd Nusa-Code
cargo build --release

Binary berada di target/release/nusa atau target/release/nusa.exe.

Menjalankan program

cargo run -- examples/halo.nusa
cargo run -- run examples/fungsi.nusa
cargo run -- check examples/kendali_alur.nusa
cargo run -- repl

Setelah build rilis, jalankan binary secara langsung:

./target/release/nusa examples/halo.nusa

Menguji

cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace

Dukungan VS Code

Extension berada di editors/vscode. Dari direktori tersebut:

npm install --global @vscode/vsce
vsce package
code --install-extension nusacode-language-support-0.1.0.vsix

Extension menyediakan grammar TextMate, konfigurasi bahasa, snippet, ikon .nusa, dan perintah NusaCode: Jalankan Berkas Aktif serta NusaCode: Periksa Berkas Aktif. Perintah runtime membutuhkan binary nusa di PATH atau pengaturan nusacode.runtimePath.

Website

cd website
npm install
npm run dev
npm run build

Website dapat dipublikasikan terpisah ke repository hairift/Web-App-NusaCode.

Dokumentasi

Struktur repository

NusaCode/
├── src/*.rs             Interpreter referensi Rust dan CLI
├── src/*.asm            Backend assembly eksperimental
├── tests/               Pengujian integrasi bahasa
├── examples/            Program Nusa yang dapat dijalankan
├── docs/                Referensi dan dokumentasi teknis
├── editors/vscode/      Extension Visual Studio Code
├── website/             Website React + TypeScript
└── .github/             CI, release, dan template komunitas

Prinsip proyek

NusaCode mengambil pelajaran umum dari bahasa-bahasa matang tanpa menyalin implementasi atau identitas mereka. Sasaran jangka panjang mencakup sistem modul, package manager, language server, formatter, FFI, backend bytecode/kompilasi, dan pustaka aplikasi. Setiap kemampuan baru harus disertai spesifikasi, pengujian, dan status dukungan yang jujur.

Lisensi dan dukungan

NusaCode tersedia sebagai perangkat lunak sumber terbuka di bawah MIT License. Kontribusi tunduk pada lisensi yang sama.

Pengembangan mandiri dapat didukung melalui Trakteer.

About

NusaCode — Bahasa pemrograman dwibahasa Indonesia-Inggris untuk pembelajaran, riset & pengembangan. Sintaks original: penugasan <-, perbandingan =, blok eksplisit akhir_jika. Implementasi referensi Rust + backend assembly x86-32 eksperimental, jalan di Windows/Linux/macOS. CLI run/check/REPL, lexer Unicode, fungsi/closure/rekursi, VS Code extension

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages