bahasa-simpl
v1.0.22
Published
Bahasa pemrograman mini berbasis kata bahasa Indonesia
Readme
simpl: Indonesian Mini Programming Language
simpl adalah bahasa pemrograman mini yang berbasis dari bahasa Indonesia. Bahasa ini dirancang untuk memudahkan penerjemahan berbagai konsep pemrograman ke dalam bahasa Indonesia. Selain itu, semua kata kunci (keywords) dari bahasa ini memiliki jumlah karakter persis 5 huruf untuk alasan estetika :)
simpl adalah akronim rekursif dari simpl: Indonesian Mini Programming Language
Coba sekarang dalam website simpl!
Fitur simpl
simpl masih dalam tahap pengembangan! Jadi, semua yang tertera disini akan berubah sewaktu-waktu!
Berikut fitur yang sekarang sudah diimplementasikan:
- Bahasa pemrograman mini yang diinterpretasi JavaScript
- Pengecekan Tipe yang kuat (saat runtime)
- Mendukung fitur pemrograman fungsional (first-class, closure)
- Mendukung pembuatan Tipe melalui
model(struct) danjenis(enum) - Semua kata kunci berjumlah 5 huruf dan dalam bahasa Indonesia
Fitur yang akan datang:
- dokumentasi penuh
- Pembersihan dan perapihan kode sumber
- Pengecekan sebelum eksekusi (Analisa semantik)
- Pe
masukan input ke program - Pengendalian
error impordanexpor- bytecode...
- dan fitur lainnya yang tidak terpikirkan sekarang
Instalasi
Saat ini CLI belum didukung.
npm install bahasa-simpllalu pada suatu index.js dalam folder yang sama:
import { Simpl } from "bahasa-simpl";
let s = new Simpl();
console.log(s.runCode(`
cetak "Halo Dunia!"
`));*Hati-hati terhadap karakter garis miring belakang ( \ ) dalam javascript string, simpl dapat memproses karakter \n \t dan \", jadi dalam string javascript, anda harus menulisnya dua kali => \\n
API
class Simpl(opts?: { keepMemory?: boolean }):
- Menghasilkan sebuah instance dari simpl
keepMemory?: booleandefaultfalse:- Kalau bernilai
true,simplakan menyimpan memorinya setiap kalirunCode, Mengingatnya kembali saatrunCodeselanjutnya.
- Kalau bernilai
runCode(code: string): string:- Menjalankan
simpldan mencetak output programnya ke layar.
- Menjalankan
Contoh simpl
Tur lebih lengkap ada dalam Tur Sintaks Simpl
mesinakar dua
mesin akar2 ==> (angka n) {
angka tetap TOLERANSI = 0.0000000000000000001
mesin abs ==> (angka a) {
kalau a < 0 { hasil -a }
hasil a
}
mesin rata2 ==> (angka a, angka b) { hasil (a+b)/2 }
# menebak dengan metode newton
angka tebakan = 0
angka selanjutnya = 1
slagi abs(tebakan - selanjutnya) > TOLERANSI {
rubah tebakan = selanjutnya
rubah selanjutnya = rata2(tebakan, n/tebakan)
}
hasil tebakan
}- demonstrasi fungsional
mesin map ==> (mesin f, baris masukan) {
baris keluaran = []
untuk datum d dalam masukan {
rubah keluaran = keluaran + [f(d)]
}
hasil keluaran
}
mesin ganda ==> (mesin f) {
hasil => (datum a) { hasil f(f(a)) }
}
baris contoh = [1,2,3,4,5]
mesin kuadrat ==> (angka n) { hasil n*n }
cetak ganda(kuadrat)(10)
# 10000
cetak map(ganda(kuadrat), contoh)
# [ 1, 16, 81, 256, 625 ]
- demonstrasi pemodelan
model Pengguna (
petik nama,
angka id,
Status status
)
modul Pengguna {
jenis Status ( online, offline, rahasia )
angka jumlahPengguna = 0
mesin baru ==> (petik nama) {
Pengguna akunBaru = Pengguna(
nama,
jumlahPengguna,
Status.online
)
rubah jumlahPengguna = jumlahPengguna + 1
hasil akunBaru
}
mesin kePetik ==> (Pengguna p) {
petik status = ""
kalau p.status == Status.online {
rubah status = "online"
} namun kalau p.status == Status.offline {
rubah status = "offline"
} namun {
rubah status = "rahasia"
}
hasil
"{ nama: " + p.nama +
", id: " + petik(p.id) +
", status: " + status + " }"
}
}
Pengguna admin = Pengguna.baru("zie")
Pengguna lain = Pengguna.baru("Hengker Anongnimus")
cetak Pengguna.kepetik(admin)
# "{ nama: zie, id: 0, status: online }"
cetak lain.kePetik()
# "{ nama: Hengker Anongnimus, id: 1, status: online }"Sumber Referensi
simpl ada berkat tutorial yang sangat mengagumkan ini. Check them out!
