Bilingual aliases

Bnlang lets you write any program in English, Bangla, or a mix of the two. For every common identifier in the language — keywords, built-in globals, and standard-library module names — there's an English form and a Bangla form, and the runtime treats them as the same thing.

You can use whichever form reads more naturally for what you're writing. Mixing within a single file is fine; both forms can appear in the same line if you want.

ফাংশন main() {
    লিখুন("Hello, world!");
}
main();

Keywords

See the dedicated Keywords page. Every keyword has a Bangla synonym (e.g. function / ফাংশন, if / যদি, wait / অপেক্ষা); they're handled at lexing time, so the parser sees the same token regardless of which form you wrote.

Global functions

These names are bound in the global scope at interpreter startup. Both names point to the same callable.

EnglishBangla
printলিখুন
inputইনপুট
strস্ট্রিং
to_numberসংখ্যা
chrঅক্ষর
typeধরণ
try_callনিরাপদ_কল
prettyসুন্দর
dumpবিস্তারিত
Futureভবিষ্যৎ
futurifyভবিষ্যৎকর

See the Globals page for behavior details.

Module names

import "X" and import "Y" resolve to the same Module instance when X and Y are aliases. So an instance imported under one name is identical to one imported under the other — comparing them with == returns true.

Native modules

EnglishBangla
_io_ফাইল
timersটাইমার
netনেট
jsonজেসন
sysসিস্টেম
timeসময়
pathপথ
mathগণিত
randomএলোমেলো
cryptoক্রিপ্টো
regexপ্যাটার্ন
httpএইচটিটিপি
tlsটিএলএস

Lib (embedded) modules

EnglishBangla
ioফাইল
requestঅনুরোধ
webওয়েব
urlইউআরএল
logলগ
testটেস্ট
zlibসংকোচন
sqliteএসকিউলাইট
pgপোস্টগ্রেস
mysqlমাইএসকিউএল
mongoমঙ্গো
execচালান
dnsডিএনএস
templateটেমপ্লেট
wsওয়েবসকেট
cookieকুকি
sessionঅধিবেশন
multipartমাল্টিপার্ট
dotenvডটএনভ
cliকমান্ড
uuidইউইউআইডি
csvসিএসভি

Verifying

You can confirm two forms resolve to the same value at runtime:

import "এলোমেলো" as rng_bn;
import "random"     as rng_en;
print(rng_bn == rng_en);   // true

print(Future == ভবিষ্যৎ);   // true

Why this exists

Bnlang's goal is to let writers stay in the language they think in, without forcing a fork in the ecosystem. Programs written in either form are perfectly equivalent; libraries written in one form are usable from the other; you never have to choose globally.

The full alias table lives in src/runtime/bn_aliases.h — one file, one source of truth. Adding a new alias is a one-line change.