စံကား

"မင်္ဂလာပါ" ဟု ပြသပါ။

Zaka is a programming language based on a subset of Burmese. Burmese sentences are compiled down to instructions for Zaka Virtual Machine.

Photo: Antonio Gabriel on Unsplash.

What does Zaka mean?

Frangipani flowers, cream with a gold heart.
Frangipani flowers, cream with a gold heart. “Frangipani flowers”, Renesis, CC BY-SA 3.0.
စံကားplumeria◌ံthe markစကားspeech

Zaka sounds similar to စံကား, which in Burmese means the plumeria flower, also known as the frangipani. Take the mark ံ off its first letter and the word reads စကား, which in Burmese means speech.

Almost like a natural Burmese sentence

The verb comes last, as in Burmese.

အသက် ကို ပြသပါ။

အသက် (age), then ကို to mark it as the object, then the verb ပြသပါ (show) to close the clause.

In Rustprintln!("{age}");

Particles mark what each word does.

အသက် သည် ၁၈ ထက် ကြီးသည်

သည် marks the subject and ထက် the thing it is compared with, as a Burmese sentence would.

In Rustage > 18

Numbers are written in Burmese digits.

၆ * ၇ ကို ပြသပါ။

Burmese digits from ၀ to ၉, with plain integer arithmetic underneath; this line prints 42.

In Rustprintln!("{}", 6 * 7);

A statement ends at ။, not at the line break.

"က" ဟု ပြသပါ။ "ခ" ဟု ပြသပါ။

Two statements on one line: ။ ends each, and a line break between them would change nothing.

In Rustprintln!("က"); println!("ခ");

A space is the one word break.

ကိန်းရှင် အသက် သည် ကိန်းပြည့် ဖြစ်၍ တန်ဖိုးသည် ၃၀ ဖြစ်ပါစေ။

Burmese runs its words together and the compiler can't guess where the words end without a proper wordlist or NLP, so a space is used to mark the end of each word when needed.

In Rustlet mut age: isize = 30;

Explore the Zaka language.

The explorer lets users explore Zaka in the browser and shows each compiler and interpreter stage.

Open the explorer