S Technologies's Logo
শূন্য
শূন্য

রং

ইন্ডিগো
লাল
সবুজ
টিল
নীল
বেগুনি
গোলাপি

মোড

লাইট
EN
বাংলা ভাষার প্রোগ্রামিং ল্যাঙ্গুয়েজ

কোড লিখুন নিজের ভাষায়

শূন্য একটি সাধারণ উদ্দেশ্যের প্রোগ্রামিং ল্যাঙ্গুয়েজ, যার কিওয়ার্ড, ভেরিয়েবলের নাম এবং সংখ্যা—সবই বাংলা। এটি হাই-লেভেল, স্ট্যাটিকালি টাইপড, এবং মেশিন কোডে কম্পাইল হয়।

hello.shnoশূন্য
// প্রথম প্রোগ্রামলেখা নাম = 'শুন্য';সংখ্যা সাল = ২০২৪;দেখাও('হ্যালো, ' + নাম + '!');যদি (সাল > ২০২০) {	দেখাও('বাংলায় প্রোগ্রামিং');}
আউটপুট
  • হ্যালো, শুন্য!
  • বাংলায় প্রোগ্রামিং
কেন শূন্য

যে ভাষা আপনি যেভাবে ভাবেন সেভাবেই পড়া যায়

তিনটি সিদ্ধান্ত বাকি সবকিছু ঠিক করে দেয়।

  • পুরোটাই বাংলা

    কিওয়ার্ড বাংলা শব্দ, ভেরিয়েবলের নাম বাংলা শব্দ, আর সংখ্যা লেখা হয় ০ থেকে ৯ দিয়ে। কিছুই লিপ্যন্তর করা নয়, আর ভেতরে কোনো ইংরেজি ভাষার মোড়কও নেই।

  • স্ট্যাটিকালি টাইপড

    প্রতিটি ভেরিয়েবলের ধরন প্রোগ্রাম চলার আগেই কম্পাইলার জানে। যে মান তার জায়গায় খাপ খায় না, সেটি বিল্ড এরর—ব্যবহারকারীর সামনে হঠাৎ আসা বিস্ময় নয়।

  • মেশিন কোডে কম্পাইল হয়

    শূন্য চলার সময় ইন্টারপ্রেট হয় না। কম্পাইলার আপনার সোর্সকে এক্সিকিউটেবল বানায়, তাই তৈরি প্রোগ্রাম এমন একটি ফাইল যা অন্য কাউকে দিয়ে দেওয়া যায়।

নামটি

শুন্য মানে শূন্য

ভাষাটির নাম এই অঙ্কটির নামে, আর যুক্তির শুরুও এখান থেকেই।

যদিযখনসংখ্যাসত্যনাহলেদেখাওলেখাফাংশন
  • বাংলার নিজস্ব সংখ্যা আছে, আর শূন্য সেগুলোই ব্যবহার করে: কম্পাইলারের কাছে ৫ একটি সংখ্যা, রূপান্তর করার মতো কোনো অক্ষর নয়।

  • শূন্য সৎ সূচনাবিন্দুও বটে। শূন্য ধরে নেয় না যে আপনি ইংরেজি জানেন, আগে কোনো ভাষা শিখেছেন, বা বাইরের কোনো শব্দভান্ডার আপনার আছে।

  • বাংলাভাষী শিশু সবার আগে যে অঙ্কটি লিখতে শেখে, এখন সেটি দিয়েই সে হিসাব করাতে পারে।

শব্দভান্ডার

পুরো ভাষাটি, এক পর্দায়

শূন্য-এর সবকটি সংরক্ষিত শব্দ। কোনো কার্ডের ওপর মাউস নিলে ব্যবহারের নমুনা দেখা যাবে।

  • চলকvar
    ঘোষণাচলক ক = ৫;
  • ধ্রুবকconst
    ঘোষণাধ্রুবক পাই = ৩.১৪;
  • সংখ্যাint
    ধরনসংখ্যা বয়স = ২৫;
  • ভগ্নাংশfloat
    ধরনভগ্নাংশ দাম = ৯.৫;
  • লেখাstring
    ধরনলেখা নাম = 'রফিক';
  • বুলbool
    ধরনবুল সত্যি = সত্য;
  • সারিarray
    ধরনসারি নামগুলো;
  • সত্যtrue
    লিটারেলবুল ক = সত্য;
  • মিথ্যাfalse
    লিটারেলবুল খ = মিথ্যা;
  • যদিif
    নিয়ন্ত্রণযদি (ক > ৫) { }
  • নাহলেelse
    নিয়ন্ত্রণনাহলে { }
  • নাহলে_যদিelse if
    নিয়ন্ত্রণনাহলে_যদি (ক < ০) { }
  • যখনwhile
    নিয়ন্ত্রণযখন (ক < ১০) { }
  • চক্রfor
    নিয়ন্ত্রণচক্র (ক) { }
  • থামাওbreak
    নিয়ন্ত্রণথামাও;
  • চালাওcontinue
    নিয়ন্ত্রণচালাও;
  • এবংand
    অপারেটরযদি (ক এবং খ) { }
  • অথবাor
    অপারেটরযদি (ক অথবা খ) { }
  • নয়not
    অপারেটরযদি (নয় ক) { }
  • ফাংশনfunction
    ফাংশনফাংশন যোগ() { }
  • পাঠাওreturn
    ফাংশনপাঠাও ফল;
  • দেখাওprint
    বিল্ট-ইনদেখাও('হ্যালো');

এটুকুই পুরো শব্দভান্ডার—দ্বিতীয় কোনো পাতা নেই। যে ভাষা মাথায় ধরে রাখা যায়, সেটি আজ সন্ধ্যায়ই ব্যবহার শুরু করা যায়।

সংখ্যা

সংখ্যা লেখা হয় ০ থেকে ৯

দেখানোর জন্য রূপান্তর করা নয়—লেক্সার এটিই পড়ে, আর প্রোগ্রামও এটিই ছাপে।

যা আপনি চেনেনশূন্য যা পড়ে
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

শূন্য-তে সাংখ্যিক লিটারেল মেলানো হয় [০-৯] দিয়ে, আর দশমিক অংশও একই অঙ্কে। বাংলা সংখ্যা ঢোকে, বাংলা সংখ্যাই বেরোয়—মাঝখানে কিছুই অনুবাদ হয় না।

numeral.shnoশূন্য
সংখ্যা  = ;সংখ্যা  = ;দেখাও( * );দেখাও( + );
আউটপুট
  • ৪২
  • ১৩
প্রোগ্রাম

সত্যিকারের প্রোগ্রাম, আর তারা যা ছাপে

নিচের প্রতিটি আউটপুট এই পাতা তৈরির সময় ঠিক ওই প্রোগ্রামটি চালিয়ে পাওয়া।

hello.shnoশূন্য
দেখাও('হ্যালো, আমি শুন্য!');
আউটপুট
  • হ্যালো, আমি শুন্য!

শূন্য-এর নিজস্ব ডকুমেন্টেশনের উদাহরণ, অপরিবর্তিত। দেখাও তার আর্গুমেন্ট ছাপে।

ধাপ এক

আপনার লাইন টোকেনে ভাঙে

কম্পাইলার প্রথমে যা করে তা হলো লেখাটিকে অর্থবহ ক্ষুদ্রতম টুকরোয় কেটে ফেলা।

সোর্স
সংখ্যা মোট =  + ;
টোকেন
  • সংখ্যাধরন
  • মোটনাম
  • =অপারেটর
  • সংখ্যা
  • +অপারেটর
  • সংখ্যা
  • ;চিহ্ন

প্রতিটি চিপ একটি টোকেন, সঙ্গে তার শ্রেণি

ধাপ দুই

টোকেন থেকে গাছ

পার্সার বের করে কোনটা কার সঙ্গে যায়—এখানেই আপনার হিসাবের বন্ধনী নিছক চিহ্ন থাকে না, কাঠামো হয়ে ওঠে।

পার্স করা স্টেটমেন্ট
ফল+*সংখ্যা

পার্সার এই স্টেটমেন্টের জন্য যে সিনট্যাক্স ট্রি বানায়

ধাপ তিন

ভুল প্রোগ্রাম কম্পাইলার বানাতে অস্বীকার করে

স্ট্যাটিকালি টাইপড হওয়ার আসল লাভ এটাই: ভুলটা এখনই ধরা পড়ে, যন্ত্রের হাতে—পরে ব্যবহারকারীর হাতে নয়।

কম্পাইল হয় না
main.shnoশূন্য
সংখ্যা বয়স = ২৫;লেখা নাম = 'রফিক';দেখাও(নাম + বয়স);

$ shunno build main.shno

  • main.shno:4 ‘+’ cannot join লেখা and সংখ্যা
  • ১টি এরর — কোনো এক্সিকিউটেবল তৈরি হয়নি
কম্পাইল হয়
main.shnoশূন্য
সংখ্যা বয়স = ২৫;লেখা নাম = 'রফিক';দেখাও(নাম);দেখাও(বয়স);

$ shunno build main.shno

সফলভাবে তৈরি হয়েছে

কিছুই চলেনি। অর্ধেক লেখা আউটপুট নেই, আধা-তৈরি ফাইলও নেই—প্রোগ্রামটির একটি লাইনও চালানোর আগেই সেটি বাতিল হয়েছে।

শুরু থেকে শেষ

আপনার লেখা থেকে এক্সিকিউটেবল

ছয়টি ধাপ, আর প্রতিটির পর প্রোগ্রামটি অন্যরকম একটি জিনিস।

আপনার সোর্সচালানোর মতো প্রোগ্রাম
  1. সোর্সদেখাও('হ্যালো');আপনি যা লিখেছেন।
  2. লেক্সার[দেখাও] [(] ['হ্যালো'] [)] [;]টোকেনে কাটা।
  3. পার্সারদেখাও └ 'হ্যালো'গাছের আকারে সাজানো।
  4. টাইপ চেকলেখা ✓প্রতিটি মান তার জায়গায় মেলানো।
  5. কোড জেনারেশনmov rdi, msg call printইনস্ট্রাকশনে নামানো।
  6. এক্সিকিউটেবল48 89 F8 E8 00মেশিন কোড, চালানোর জন্য প্রস্তুত।
ফাংশন

যে ফাংশন নিজেকেই ডাকে

প্রতিটি কল তার নিচেরটির জন্য অপেক্ষা করে, আর উত্তরগুলো ফেরে ঠিক উল্টো ক্রমে।

সোর্স
stack.shnoশূন্য
ফাংশন ক্রমগুণ(সংখ্যা ) {	যদি ( <= ) {		পাঠাও ;	}	পাঠাও  * ক্রমগুণ( - );}দেখাও(ক্রমগুণ());
কল স্ট্যাক
  1. ক্রমগুণ(৫)ফেরায়১২০
  2. ক্রমগুণ(৪)ফেরায়২৪
  3. ক্রমগুণ(৩)ফেরায়
  4. ক্রমগুণ(২)ফেরায়
  5. ক্রমগুণ(১)ফেরায়

পাশের এই ট্রেসটি মেপে নেওয়া নয়, লিখে দেওয়া—এই সাইটের বাকি নমুনাগুলো যে ব্রাউজার-ইন্টারপ্রেটার চালায়, সেটি এখনো ফাংশন ঘোষণা চালাতে পারে না।

সংখ্যায়

এক সন্ধ্যায় শিখে ফেলার মতো ছোট

এতে খুব বেশি কিছু নেই, আর সেটাই নকশা।

সংরক্ষিত শব্দ

সম্পূর্ণ শব্দভান্ডার

বিল্ট-ইন ধরন

সংখ্যা, ভগ্নাংশ, লেখা, বুল, সারি

এডিটর ইন্টিগ্রেশন

VS Code, JetBrains

চিরকালের খরচ

STechBD License-এর আওতায় বিনামূল্যে

যা দিয়ে তৈরি

প্রচলিত একটি কম্পাইলার, খোলাখুলি

Lex ও Yacc দিয়ে ফ্রন্ট এন্ড, C++ ড্রাইভার, লক্ষ্য x86-64। অস্বাভাবিক কিছু নেই, আর পুরোটাই পড়ে বোঝা যায়।

টুলচেইন ও লক্ষ্য

  • Lex
  • Yacc
  • Flex
  • Bison
  • C++
  • GCC
  • Make
  • CMake
  • Windows
  • x86-64
  • Machine code
  • Static typing
  • Unicode
  • UTF-8
  • Bengali numerals
  • CLI
  • VS Code
  • JetBrains
  • TextMate grammar
  • GitHub
  • STechBD License
  • Free
  • Open source
  • STechBD
টুলিং

ভাষার চারপাশে যা পাবেন

একা কম্পাইলার মানে গবেষণা প্রকল্প। এগুলোই সেটিকে প্রকল্প শুরু করার মতো জিনিস বানায়।

কোন দিকে যাচ্ছে

যা হয়েছে, আর যা পরে

শূন্য ছোট একটি প্রকল্প, তালিকাও ছোট। এটিই তার সৎ রূপ।

  1. v1.0.0সম্পন্ন

    প্রথম প্রকাশ

    সংস্করণ ১.০.০ — ভাষা, কম্পাইলার আর ডকুমেন্টেশন, একসঙ্গে প্রকাশিত।

  2. Windowsসম্পন্ন

    Windows কম্পাইলার

    Lex/Yacc ফ্রন্ট এন্ড ও C++ ড্রাইভার, নেটিভ এক্সিকিউটেবল তৈরি করে।

  3. Editorsচলমান

    এডিটর সাপোর্ট

    VS Code এক্সটেনশন প্রকাশিত। JetBrains প্লাগইনের রিপোজিটরি আছে, কাজ শেষ হয়নি।

  4. Linux · macOSপরিকল্পিত

    আরও প্ল্যাটফর্ম

    Linux ও macOS বিল্ড। শুরু হয়নি, আর কোনো তারিখের প্রতিশ্রুতিও নেই।

চালিয়ে দেখুন

এখানেই শূন্য লিখুন

ইনস্টল নেই, অ্যাকাউন্ট নেই। প্রোগ্রামটি বদলান, চালান চাপুন, আউটপুট পড়ুন।

এডিটর
নমুনা
আউটপুট

এই প্রোগ্রামটি কম্পাইল ও চালাতে “চালান” চাপুন।

এটি শূন্য-এর একটি অংশের জন্য ব্রাউজারে চলা ইন্টারপ্রেটার, আসল কম্পাইলার নয়। ঘোষণা, দেখাও, যদি, যখন, থামাও ও চালাও কাজ করে; ফাংশন, চক্র ও সারি চেনা যায় কিন্তু চালানো হয় না।

ইকোসিস্টেম

শূন্য আর তার চারপাশের সবকিছু

এস টেকনোলজিস যা তৈরি ও রক্ষণাবেক্ষণ করে, ভাষাটি তারই একটি বড় বৃত্তের ভেতরে।

শূন্যবাংলায় প্রোগ্রামিংস্ট্যাটিকালি টাইপডকম্পাইলডওপেন সোর্সশূন্যবাংলায় প্রোগ্রামিংস্ট্যাটিকালি টাইপডকম্পাইলডওপেন সোর্সশূন্যবাংলায় প্রোগ্রামিংস্ট্যাটিকালি টাইপডকম্পাইলডওপেন সোর্সশূন্যবাংলায় প্রোগ্রামিংস্ট্যাটিকালি টাইপডকম্পাইলডওপেন সোর্স
মানুষ

কারা তৈরি করেন

ছোট একটি প্রকল্প, নির্ভুলভাবে বলা।

এখান থেকে শুরু

আপনার প্রথম শূন্য প্রোগ্রাম মাত্র এক লাইনের

কম্পাইলার ইনস্টল করুন, কিংবা সেটি বাদ দিয়ে সরাসরি ব্রাউজারেই কিছু লিখুন। যেভাবেই হোক, আগামী কয়েক মিনিটের মধ্যেই আপনি বাংলায় একটি প্রোগ্রাম চালিয়ে ফেলবেন।

STechBD License-এর আওতায় বিনামূল্যে। সোর্স GitHub-এ।