প্রোগ্রামিং সি/সি++ এখন আরও সহজ ভাষায়

0
39

বর্তমান বিশ্বে সবচেয়ে জনপ্রিয় এবং স্ট্যান্ডার্ড প্রোগ্রামিং ল্যাঙ্গুয়েজ হলো ‘ প্রোগ্রামিং সি/সি++ ’। এর জনপ্রিয়তা সবচেয়ে বেশি হওয়ার অন্যতম কারণ হলো সি দিয়ে অনেক সহজে বিভিন্ন জটিল সমস্যার সমাধান করা যায়। তাছাড়া অনেক আধুনিক ল্যাঙ্গুয়েজের (যেমন-জাভা) ভিত্তি হলো সি।

সর্বপ্রথম ডেনিশ রিচি এই ল্যাঙ্গুয়েজটি উদ্ভাবন করেন। ল্যাঙ্গুয়েজটি ইউনিক্স অপারেটিং সিসটেমে লেখা হয় এবং পরে সি দিয়েই নতুন করে ইউনিক্স লেখা হয়। তবে সি-এর আগেও একটি ল্যাঙ্গুয়েজ ছিল, যার নাম BCPL বা সংক্ষেপে বি। সি হলো এই বি-এর উন্নততর ভার্সন। পরে সি-এর আরো কিছু ভার্সন বের হয়েছে। যেমন- সি++, সি# ইত্যাদি।

 প্রোগ্রামিং সি/সি++

সাধারণত তিন রকমের ল্যাঙ্গুয়েজ দেখা যায়। যেমন-হাই লেভেল ল্যাঙ্গুয়েজ (Ada, Pascal ইত্যাদি), মিড লেভেল ল্যাঙ্গুয়েজ (C/C++) এবং লো লেভেল ল্যাঙ্গুয়েজ (Assembly)। সি-কে মিড লেভেল ল্যাঙ্গুয়েজ বলার বিশেষ কারণ আছে। এমন নয় যে এটি হাই লেভেল ল্যাঙ্গুয়েজ থেকে কম শক্তিশালী। বরং সি একদিকে যেমন লো লেভেল ল্যাঙ্গুয়েজের মতো বিট, বাইট, অ্যাড্রেস ইত্যাদি মৌলিক উপাদান নিয়ে কাজ করতে পারে, তেমনি হাই লেভেল ল্যাঙ্গুয়েজের মতো বিভিন্ন ডাটা স্ট্রাকচার নিয়েও কাজ করতে পারে। তাই একে মিড লেভেল বলা হয়। তাছাড়া সি-এর পোর্টেবিলিটি অনেক বেশি, অর্থাৎ এক অপারেটিং সিস্টেমে লেখা প্রোগ্রাম অন্য অপারেটিং সিস্টেমে সহজে কনভার্ট করে চালানো যায়। এ কারণেই সি অত্যন্ত জনপ্রিয়।

কিছু প্রাথমিক ধারণা

সি-তে প্রোগ্রাম লিখতে হলে কিছু প্রাথমিক ধারণার প্রয়োজন। প্রথমেই কনস্ট্যান্ট, ভেরিয়েবল এবং ফাংশন সম্পর্কে জানা যাক। কনস্ট্যান্ট হলো এমন একটি প্রতীক, যা দিয়ে একটি নির্দিষ্ট মান প্রকাশ করা হয় এবং মানটি কখনই পরিবর্তন করা যায় না। ভেরিয়েবল হলো এমন একটি প্রতীক, যা দিয়ে কোনো মান প্রকাশ করা যায় এবং মানটি পরিবর্তন করা যায়। ফাংশন হলো এমন কিছু উপাদানের সেট, যেই উপাদানগুলোর ওপর কোনো শর্ত আরোপ করা যায়। যেমন-A যদি একটি ফাংশন এবং এর উপাদান যদি (1,3,5,7…) হয় তাহলে এর উপাদানের ওপর আরোপিত শর্ত হলো (x=2n+1;n= পূর্ণ সংখ্যা)।

আইডিই (IDE)

যেকোনো ধরনের টেক্সট ফাইলে কোড লিখে প্রোগ্রামের সোর্স ফাইল তৈরি করা যায়। সে ক্ষেত্রে ফাইল ফরমেট .txt থেকে .c বা .cpp তে নিতে হবে। তবে বিভিন্ন কোম্পানি (বোরল্যান্ড, মাইক্রোসফট ইত্যাদি) তাদের নিজস্ব কিছু বিশেষ ধরনের এডিটর বের করেছে। এদের IDE (Integrated Development Environment) বলে। অনেক সময় এদের কম্পাইলারও বলে। এসব IDE ব্যবহার করলে কিছু বাড়তি সুবিধা পাওয়া যায়। জনপ্রিয় কয়েকটি IDE হলো Turbo C++, Microsoft Visual C++ ইত্যাদি। নতুনদের জন্য TC বা টার্বো সি ভালো। ইন্টারনেটে TC পাওয়া যায়। এটি c:\ ড্রাইভে কপি করতে হয়। আর IDEটি চালাতে c:\TC\BIN\TC.EXE চালাতে হবে।

কম্পাইলার/ইন্টারপ্রেটার

আমরা জানি কমপিউটার বাইনারি সংখ্যায় কাজ করে। তাই ইউজার যখন কোনো কোড লেখে তখন তা কমপিউটার সরাসরি বুঝতে পারে না। সে জন্য সোর্স কোডকে প্রথমে মেশিন কোডে রূপান্তর করা হয়। তারপর কমপিউটার বুঝতে পারে। আর এই রূপান্তরের কাজটি সম্পাদন করে কম্পাইলার। বিভিন্ন IDE-তে কম্পাইলার দিয়ে দেয়া হয়। কম্পাইলার এবং ইন্টারপ্রেটারের মূল কাজ একই, তবে এদের মধ্যে মূল পার্থক্য হলো কম্পাইলার সম্পূর্ণ কোডকে মেশিন কোডে রূপান্তর করে প্রয়োজনীয় সাহায্যকারী ফাইল সংযুক্ত করে একটি .exe ফাইল তৈরি করে। তাই পরে সরাসরি অপারেটিং সিস্টেম থেকে .exe ফাইল চালিয়ে প্রোগ্রামটি চালানো যায়। কিন্তু ইন্টারপ্রেটার এরকম কোনো .exe ফাইল তৈরি করে না এবং প্রতিবার প্রোগ্রাম চালানোর সময় সোর্স কোডের একেকটি লাইন পড়ে এবং এক্সিকিউট করে। যেটা অনেক ঝামেলার এবং সময়সাপেক্ষ প্রক্রিয়া।

এবার একটি ছোট প্রোগ্রামের কোডিং দেখা যাক। নতুন ইউজারদের উচিত টার্বো সি ব্যবহার করা। তবে এটি অনেক পুরনো এবং DOS মোডে চলে বলে অন্য কোনো সহজ কম্পাইলার যেমন-Dev C++ ব্যবহার করা যেতে পারে। Dev C++ এ কোড লিখে F9 চাপলে কমপাইল এবং রান একই সাথে হবে।

#include
#include
int main()//main function
{//code block starts here
printf(‘‘Hello’’);
getch();
return 0;
}//code block ends here

এখানে ‘#’ চিহ্ন দেয়ার পর যে স্টেটমেন্টগুলো লেখা হয়েছে সেগুলোর মাধ্যমে কিছু হেডার ফাইল যুক্ত করা হয়েছে। হেডার ফাইল হলো সাহায্যকারী ফাইল। main() হলো প্রোগ্রামের প্রধান ফাংশন। এখান থেকেই সব প্রোগ্রাম শুরু হয়। আর কোনো ফাংশন চেনার সহজ উপায় হলো কোনো নামের শেষে () বন্ধনী থাকবে। যেমন- printf() একটি ফাংশন এবং এর কাজ হলো বন্ধনীর ভেতর ডাবল কোটেশনের ভেতরে যা আছে তা প্রিন্ট করা অর্থাৎ মনিটরে দেখান। getch() হলো একটি ইনপুট ফাংশন। এর কাজ হলো ইউজার যতক্ষণ না পর্যন্ত কিবোর্ড থেকে কোনো বাটন প্রেস করবে ততক্ষণ প্রোগ্রাম থেমে থাকবে। ইউজার যখনই কোনো বাটন প্রেস করবে, তখন তা গ্রহণ করবে এবং পরবর্তী কাজ সম্পাদন করবে।

return 0-তে আসলে প্রোগ্রাম বন্ধ হয়ে যাবে। এই স্টেটমেন্টের মানে হলো ফাংশনকে যেখানে কল করা হয়েছে সেখানে প্রদত্ত মানসহ রিটার্ন করা। এখানে রিটার্ন ভ্যালু 0। আর এই রিটার্ন স্টেটমেন্টটি মেইন ফাংশনের অধীনে কাজ করছে। সুতরাং কম্পাইলার যখন এই রিটার্ন স্টেটমেন্টে আসবে তখন সে 0 ভ্যালু নিয়ে মেইন ফাংশনকে যেখানে কল করা হয়েছে সেখানে ফিরে যাবে। অর্থাৎ প্রোগ্রাম বন্ধ হয়ে যাবে।

‘//’ চিহ্নের পর যা-ই লেখা হোক না কেন, তা তখন কমেন্ট স্টেটমেন্ট হয়ে যাবে। একটি প্রোগ্রামে কমেন্ট স্টেটমেন্টে কোনো সক্রিয় ভূমিকা নেই। এটি প্রোগ্রামের কোডিংয়ের কোনো অংশ নয়। ইউজারদের বোঝার সুবিধার্থে এটি ব্যবহার করা হয়। ‘//’ চিহ্ন দিলে শুধু ওই লাইনটি কমেন্ট হয়ে যায়। কিন্তু একাধিক লাইনকে কমেন্ট করতে হলে প্রতিটি লাইনের শুরুতে ‘//’ ব্যবহার করা যেত পারে অথবা একদম শুরুতে ‘/*’ এবং একদম শেষে ‘*/’ ব্যবহার করা যায়।

কয়েকটি লক্ষণীয় বিষয়, সি-তে কোনো স্টেটমেন্টের শেষ বোঝাতে সেমিকোলন (;) ব্যবহার করা হয়। কিছু ব্যতিক্রম আছে যেমন-হেডার ফাইল সংযোজনে, মেইন ফাংশনের শেষে কখনো সেমিকোলন (;) ব্যবহার করা যাবে না। আর অনেক স্টেটমেন্টকে একটি কোড ব্লকে রূপান্তর করতে দ্বিতীয় বন্ধনী {} ব্যবহার করা হয়। ওপরের প্রোগ্রামটিতে দ্বিতীয় বন্ধনীর মাধ্যমে তিনটি স্টেটমেন্টকে একটি কোড ব্লকে রূপান্তর করা হয়েছে। যার মানে হলো ওই সম্পূর্ণ কোড ব্লকটি মেইন ফাংশনের অধীনে কাজ করবে। এখানে একটি কথা বলে রাখা ভালো- printf(), getch() এই ফাংশনগুলো দেখতে যত সহজ মনে হচ্ছে আসলে তত সহজ নয়। যেমন- printf() ফাংশন দিয়ে আমরা কোনো কিছু মনিটরে প্রিন্ট করি। কিন্তু এই প্রিন্ট করার জন্য অনেক কোড লেখার প্রয়োজন। যদিও এখানে শুধু printf() লিখলেই কাজ হয়ে যাচ্ছে। এর কারণ হলো printf() ফাংশনের কোডগুলো stdio.h নামের হেডার ফাইলে বর্ণিত আছে। এ কারণে প্রোগ্রামের শুরুতে হেডার ফাইলগুলো সংযোজন করা হয় যাতে ইউজার বিল্টইন ফাংশন ব্যবহার করে অনেক কাজ সম্পাদন করতে পারেন।

LEAVE A REPLY

Please enter your comment!
Please enter your name here