দ্বিভাষিক নাম
Bnlang-এ আপনি যেকোনো প্রোগ্রাম ইংরেজি, বাংলা, বা দু'টোর মিশ্রণে লিখতে পারেন। ভাষার প্রতিটি সাধারণ identifier-এর — কীওয়ার্ড, built-in global, ও standard-library module — একটি ইংরেজি ও একটি বাংলা রূপ আছে; runtime তাদের অভিন্ন বিবেচনা করে।
আপনি যেটা স্বাভাবিক মনে হয় সেটাই ব্যবহার করুন। একই ফাইলে মিশ্রণ ঠিক আছে; এক লাইনে দু'টোই থাকতে পারে।
ফাংশন main() {
লিখুন("নমস্কার বিশ্ব!");
}
main();
কীওয়ার্ড
বিস্তারিত Keywords পেজে। প্রতিটি কীওয়ার্ডের একটি বাংলা সমার্থক আছে (যেমন function / ফাংশন, if / যদি, wait / অপেক্ষা) — lexer-এ একই token-এ পার্স হয়।
গ্লোবাল ফাংশন
এই নামগুলো startup-এ গ্লোবাল স্কোপে bind হয়। দুই নাম একই callable-কে নির্দেশ করে।
| ইংরেজি | বাংলা |
|---|---|
print | লিখুন |
input | ইনপুট |
str | স্ট্রিং |
to_number | সংখ্যা |
chr | অক্ষর |
type | ধরণ |
try_call | নিরাপদ_কল |
pretty | সুন্দর |
dump | বিস্তারিত |
Future | ভবিষ্যৎ |
futurify | ভবিষ্যৎকর |
behavior-এর জন্য Globals পেজ।
মডিউল নাম
import "X" এবং import "Y" যদি একই মডিউলের alias হয় — তবে তারা একই Module instance ফেরত দেয়। == দিয়ে comparing-এ true।
Native module
| ইংরেজি | বাংলা |
|---|---|
_io | _ফাইল |
timers | টাইমার |
net | নেট |
json | জেসন |
sys | সিস্টেম |
time | সময় |
path | পথ |
math | গণিত |
random | এলোমেলো |
crypto | ক্রিপ্টো |
regex | প্যাটার্ন |
http | এইচটিটিপি |
tls | টিএলএস |
Lib (embedded) module
| ইংরেজি | বাংলা |
|---|---|
io | ফাইল |
request | অনুরোধ |
web | ওয়েব |
url | ইউআরএল |
log | লগ |
test | টেস্ট |
zlib | সংকোচন |
sqlite | এসকিউলাইট |
pg | পোস্টগ্রেস |
mongo | মঙ্গো |
exec | চালান |
dns | ডিএনএস |
template | টেমপ্লেট |
ws | ওয়েবসকেট |
cookie | কুকি |
session | অধিবেশন |
multipart | মাল্টিপার্ট |
dotenv | ডটএনভ |
cli | কমান্ড |
uuid | ইউইউআইডি |
csv | সিএসভি |
যাচাই
দু'টি রূপ runtime-এ একই value-তে resolve হয় তা যাচাই করতে পারেন:
import "এলোমেলো" as rng_bn;
import "random" as rng_en;
print(rng_bn == rng_en); // true
print(Future == ভবিষ্যৎ); // true
কেন এই ব্যবস্থা
Bnlang-এর লক্ষ্য — লেখক যে ভাষায় চিন্তা করেন সেই ভাষায়ই কাজ করতে পারবেন, ecosystem-এ fork তৈরি না করে। দুই রূপে লেখা প্রোগ্রাম পুরোপুরি equivalent; এক রূপে লেখা library অন্য রূপ থেকে ব্যবহারযোগ্য; কখনোই global ভাবে একটা বেছে নিতে হবে না।
পূর্ণ alias table থাকে src/runtime/bn_aliases.h-এ — এক ফাইল, এক source of truth। নতুন alias যোগ এক-লাইনের পরিবর্তন।