[বাংলা] Introduction : C Basics in Bengali — বাংলায় C প্রোগ্রামিং
প্রথম অধ্যায়: সূচনা (Introduction)

C - ই একমাত্র প্রোগ্রামিং ল্যাঙ্গুয়েজ, যা এতদিন ধরে অস্তিত্বে রয়েছে, এবং এখনও ব্যাপকভাবে ব্যবহৃত হয়।
C Programming (Basics) এর ১ম অধ্যায়ে সবাই কে স্বাগত। একটি প্রোগ্রাম কিন্তু আদতে কয়েকটি instructions এর সম্মেলন মাত্র, যে গুলি computer পর - পর, অক্ষরে অক্ষরে পালন করে যায়। হ্যা, instructions গুলো কে অবশ্যই বোধগম্য হতে হবে। কম্পিউটার কে নিজেদের পছন্দমত instructions লিখে দিতে আমাদের দরকার পড়ে programming languages এর। C programming language টি Dennis Ritchie তৈরী করেছিলেন Unix Operating System তৈরীর জন্য। আর, এই Unix ই হলো প্রথম অপারেটিং সিস্টেম Kernel, যার সৃষ্টির জন্য Assembly Language এর বদলে C ব্যবহৃত হয়েছিল। C একটি High Level programming language। তবে, বর্তমানের অনেক আধুনিক programming language এর তুলনায় অনেক বেশি “close to hardware” এবং verbose হওয়ায়, আজ কাল অনেকেই C কেও low level language বলতে পছন্দ করেন।

কম্পিউটার এর যতই বহুমুখী প্রতিভা থাক না কিনা, সে কেবল ০ আর ১ ই বোঝে। তাই, C এর মতো কোনো high level প্রোগ্রামিং ল্যাঙ্গুয়েজ তার বোধগম্য হয় না। আমাদের মতই তার ও দরকার পড়ে একজন অনুবাদকের। যদিও তাদের কে অনুবাদক অবশ্যই বলে না 😂। তবে, এই অনুবাদক ও দুই প্রকারের হয় -
একই ভাবেই, কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ কে কোন প্রকারের অনুবাদক বুঝতে পারে তার ভিত্তিতে ২ ভাগে ভাগ করা হয় -
- Compiled Language
- Interpreted Language
যদি আমরা কোনো প্রোগ্রামিং ল্যাঙ্গুয়েজ এ লেখা code কে একটা প্রবন্ধ ভেবে নেই, তবে compiler পুরো প্রবন্ধটি কে একেবারে অনুবাদ করে Computer এর hard disk এ জমা করে রাখে। পরে দরকার মত, সে সেই অনুবাদিত ফাইল টা থেকে instructions পড়ে নেয়।
তবে, interpreter পুরো প্রবন্ধটি কে একেবারে অনুবাদ করার বদলে, computer এর যখন যে লাইন টি অনুবাদ করার দরকার হয়, সেই অনুযায়ী অনুবাদ করে দেয়।
C কিন্তু একটি compiled programming language. কয়েকটি C compiler এর নাম হলো — gcc, clang etc. আমরা যখন বাস্তবে C code লিখবো, তখন এদের ব্যবহার সম্মন্ধে বিস্তারিত জানবো।

C একটি imperative language। অর্থাৎ, আমাদের লেখা কোড গুলি কম্পিউটার পর পর যে অনুসারে সাজানো আছে, সেইভাবেই execute করে।
এছাড়াও, C procedural language। অর্থাৎ, C code কে নিজেদের সুবিধামত বিভিন্ন part এ ভাঙতে পারি। যেমন — যোগ করার জন্য যে instructions গুলির দরকার পড়ে, সেগুলি কে একটা পার্ট। আবার, জোড় সংখ্যা পরীক্ষার জন্য instructions গুলো কে আরেকটা পার্ট এ ভাঙতে পারি। এবার, কোনো বড় প্রোগ্রাম লেখার সময়, যদি আমাদের বিভিন্ন জায়গায় জোড় সংখ্যা পরীক্ষার দরকার পড়ে, আমাদের আর বার বার একই কোড লিখতে হবে না। এই পার্ট গুলো কে আমরা সরাসরি ব্যবহার করতে পারবো। এই part গুলি কে functions বলতে পারেন। তবে, সঠিকভাবে functions এর ব্যাপারে আমরা পরে বিস্তারিত জানবো।
একটা simplest C program কে আমরা কয়েকটি ভাগে ভাগ করতে পারি।
[1] Header Files
[2] Main function —
- [2A] Main function’s body
- [2B] Return statement
জটিলতর C প্রোগ্রামে আরও কয়েকটি অংশ থাকতে পারে। যেমন —
1. Preprocessor directives (#include ও এটার একটা পার্ট)
2. অন্যান্য functions (main ও একটা function। কিন্তু এটি সব প্রোগ্রামে বাধ্যতামূলক) ইত্যাদি।
See the tutorial series on YouTube: https://www.youtube.com/playlist?list=PLuWZAtG_DaqNcQK-J1gXRjqo8JAyrPDur
Read the next chapter: Installation
Code Repository: https://github.com/unsuitable001/c-basics
Twitter: https://twitter.com/unsuitable001
LinkedIn: https://linkedin.com/u/unsuitable001