একটি প্রোগ্রাম রান করলে আসলে কী ঘটে? Source Code থেকে Execution পর্যন্ত সহজ ব্যাখ্যা

Level 1
২০২২, শহীদ স্মৃতি সরকারি কলেজ, ময়মনসিংহ

রান বাটনে ক্লিক করার পর পর্দার আড়ালে যা ঘটে, তা যেন অনেকটা কোনো জাদুর বাক্সের মতো। কিন্তু একজন সত্যিকারের প্রোগ্রামার হিসেবে এই "জাদু"টা জানা খুব জরুরি। চলুন এই বিষয়টাকে একটু সহজ এবং 'হিউম্যান টাচ' দিয়ে বোঝার চেষ্টা করি।


১. সোর্স কোড: মানুষের ভাষা

সবকিছুর শুরু হয় আমাদের লেখা কোড দিয়ে। ধরুন আপনি C ল্যাঙ্গুয়েজে Hello World প্রিন্ট করার একটা কোড লিখলেন।

এই কোডটা আপনি এবং আমি বুঝতে পারছি, কিন্তু কম্পিউটার এটাকে দেখে অনেকটা 'হাবিজাবি'র মতো। কম্পিউটারের মগজ বা CPU শুধু বোঝে High Voltage (1) আর Low Voltage (0)। আমাদের এই ইংরেজি সদৃশ কোডকে তাই জিরো আর ওয়ানের ভাষায় রূপান্তর করতে হয়।

২. কম্পাইল বা ইন্টারপ্রেট: অনুবাদের পালা

এখানেই চলে আসে অনুবাদক বা Translator। একেক ভাষা একেকভাবে কাজ করে:

  • Compiler (যেমন C/C+): এরা পুরো কোডটা একবারে পড়ে একটা আলাদা ফাইল (যেমন:.exe) বানিয়ে ফেলে। এটা অনেকটা পুরো একটা ইংরেজি বইকে একবারে বাংলায় অনুবাদ করে ফেলার মতো।

  • Interpreter (যেমন Python/JS): এরা এক লাইন এক লাইন করে পড়ে এবং সাথে সাথেই কাজ শুরু করে। এটা অনেকটা লাইভ কনফারেন্সে দোভাষীর কাজ করার মতো।

৩. মেমোরিতে জায়গা নেওয়া (Loading)

আপনি যখন প্রোগ্রামে ডাবল ক্লিক বা রান করেন, তখন Operating System (OS) নড়েচড়ে বসে। সে হার্ডড্রাইভ থেকে আপনার প্রোগ্রামটাকে টেনে নিয়ে আসে RAM-এ।

কারণ, হার্ডড্রাইভ খুব ধীরগতির, আর CPU কাজ করে আলোর গতিতে। এই গতি সামাল দিতে RAM-এ কোড, ভ্যারিয়েবল এবং ডেটার জন্য আলাদা আলাদা ঘর (Stack, Heap) বরাদ্দ করা হয়।

৪. CPU-র সেই বিখ্যাত চক্র (The Cycle)

এখন আসল খেলোয়াড় অর্থাৎ CPU বা প্রসেসরের কাজ শুরু। সে মূলত একটা লুপের মধ্যে কাজ করে যেটাকে বলা হয় Fetch-Decode-Execute Cycle:

  1. Fetch: RAM থেকে একটা নির্দেশনা নিয়ে আসা।

  2. Decode: নির্দেশনাটা আসলে কী (যোগ করা? নাকি বিয়োগ?) সেটা বোঝা।

  3. Execute: কাজটা করে ফেলা।

CPU এই কাজটা প্রতি সেকেন্ডে কোটি কোটি বার করে, যা আমাদের কল্পনারও বাইরে!

৫. আউটপুট এবং বিদায়

যখন CPU আপনার কোড অনুযায়ী কাজ শেষ করে, তখন সে OS-কে বলে, "ভাই, এই রেজাল্টটা স্ক্রিনে দেখাও। " তখন আমরা মনিটরে Hello World দেখতে পাই।

সবশেষে যখন আপনার কোড return 0 এ পৌঁছায়, তখন প্রোগ্রামটি OS-কে সিগন্যাল দেয় যে— "আমার কাজ শেষ, আমি এখন মেমোরি ছেড়ে দিচ্ছি। " ব্যস, RAM আবার খালি হয়ে গেল অন্য কাজের জন্য।


সংক্ষেপে পুরো জার্নি:

Source Code → Translator → Machine Code → RAM → CPUOutput

কেন এটা বুঝলে আপনি এগিয়ে থাকবেন?

প্রোগ্রামিং মানে শুধু মুখস্থ কোড লেখা নয়। যখন আপনি জানবেন ভেতরে কী হচ্ছে, তখন বড় কোনো Error বা Memory Leak হলে আপনি ঘাবড়ে যাবেন না। তখন আপনি কোড লিখবেন কম্পিউটারের হার্টবিট বুঝে, যা আপনাকে একজন সাধারণ ইউজার থেকে একজন দক্ষ ইঞ্জিনিয়ারে রূপান্তরিত করবে।

Level 1

আমি মো ছাব্বির হোসাইন। ২০২২, শহীদ স্মৃতি সরকারি কলেজ, ময়মনসিংহ। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 3 বছর 8 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 1 টি টিউন ও 2 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 0 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস