সি-প্রোগ্রামিং (C-Programming) C v/s C++

সি-প্রোগ্রামিং (C-Programming)  হচ্ছে মধ্য পর্যায়ের হাই-লেভেল ল্যাংগুয়েজ। এটি শক্তিশালী প্রোগ্রাম ভাষা। এ ভাষা ব্যবহার করে সব ধরনের প্রোগ্রাম রচনা করা যায় বলে বর্তমানে এ ভাষা বহুলভাবে ব্যবহৃত হচ্ছে। এ ভাষাতে কম্পিউটারের অপারেটিং সিস্টেম এবং প্রোগ্রাম বা সফটওয়্যার লেখা হয়।

সি-প্রোগ্রামিং (C-Programming)

সি-প্রোগ্রামিং (C-Programming) C vs C++


সি প্রোগ্রামিং ভাষা উন্নয়নের ইতিহাস

সি একটি প্রসিডিউরাল প্রোগ্রাম ভাষা। বর্তমানে প্রসিডিউর অরিয়েন্টেড প্রোগ্রাম ভাষা হিসেবে সি ব্যাপকভাবে পরিচিত। 

সি নামটা এসেছে মার্টিন রিচার্ডস-এর উদ্ভাবিত BCPL (Basic Combined Programming Language) ভাষা (সংক্ষেপে বি) থেকে, যা প্রাথমিকভাবে ক্যামব্রিজ ইউনিভার্সিটিতে রিসার্স অরিয়েন্টেড কাজে ব্যবহৃত হতো। 

১৯৭০ সালে যুক্তরাষ্ট্রের এটিএন্ডটি বেল ল্যাবরেটরিতে ডেনিস রিচি (Dennis Ritchie) ইউনিক্স অপারেটিং সিস্টেম ব্যবহার করে সি ভাষা উদ্ভাবন করেন। 

১৯৭৮সালে ডেনিস রিচির লেখা ‘দ্যা সি প্রোগ্রামিং ল্যাংগুয়েজ’ বইটি প্রকাশের পর এবং মাইক্রো কম্পিউটারের জনপ্রিয়তা বাড়ার সাথে সাথে সি-এর ব্যাপক প্রচলন শুরু হয়। 

সে সময়ে সি-এর জনপ্রিয়তার প্রধান কারণ ছিল এক কম্পিউটারে লেখা প্রোগ্রাম অন্য কম্পিউটারে ব্যবহারের সুবিধা।


সি-এর সংস্করণ

সি ভাষা ১৯৭৮ সালের পর খুব জনপ্রিয় হয়ে ওঠে। ফলে বিভিন্ন প্রতিষ্ঠান তাদের নিজস্ব ভার্সনে সি বের করা শুরু করে। ফলে ব্যবহারকারীদের বিভিন্ন সমস্যার মুখোমুখি হতে হয়। 

১৯৮৩ সালে আমেরিকান ন্যাশনাল স্ট্যান্ডার্ড ইন্সটিটিউট (ANSI) তৎকালীন সি এর একটি আদর্শ মান নির্ধারণ করে যা (ANSI-C) নামে পরিচিতি লাভ করে। 

সি/সি++ এর বিভিন্ন কম্পাইলারের মধ্যে 

  • টার্বো সি++, 
  • বারোল্যান্ড সি++, 
  • মাইক্রোসফট সি++ ইত্যাদি অন্যতম। 

সি++ হচ্ছে সি এর অবজেক্ট অরিয়েন্টেড ভার্সন। ১৯৮০ সালে Bjarne Stroustrp সিমুলা ৬৭ ও সি-এর সম্মিলন ঘটিয়ে সি উইথ ক্লাসেস (C with Classes) নামক একটি ল্যাংগুয়েজ উদ্ভাবন করেন। ১৯৮৩ সালে এর নতুন নাম দেয়া হয় সি++।


টার্বো সি/সি++ কম্পাইলার


টার্বো সি/সি++ কম্পাইলার ব্যাপকভাবে জনপ্রিয় একটি সি কম্পাইলার। সাধারণত C ড্রাইভে Turbo C লোড করা হয়। 

প্রধান ডিরেক্টরের (TC ও Z) মধ্যে BIN নামক আরেকটি ডিরেক্টরি আছে। BIN ডিরেক্টরির মধ্যে TC নামেএক্সকিউটেবল ফাইল আছে। 

TC কে রান করলেই কম্পিউটার স্ক্রিনে টার্বো সি এডিটর ডিসপ্লে হয়। একে IDE (Integrated Development environment) বলা হয়। মেনু, টুলস, এডিটর সংবলিত এ স্ক্রিনে প্রোগ্রাম লিখা এডিট করা, কম্পাইল করা ও রান করাসহ অন্যান্য কাজ করা হয়।

ডেনিস রিচি ১৯৪১ সালের ৯ই সেপ্টেম্বর নিউইয়র্কের Bronxe-ville এলাকায় জন্মগ্রহণ করেন। তার বাবা Alistair Ritchie ছিলেন বেল ল্যাবরেটরিজের একজন সুইচিং সিস্টেম ইঞ্জিনিয়ার। 

নিউ জার্সিতে বেড়ে ওঠা রিচি ছেলেবেলায় লেখাপড়ায় ছিলেন তুখোড়। স্কুলেরপাঠ চুকিয়ে তিনি হার্ভার্ড বিশ্ববিদ্যালয়ে ভর্তি হন এবংফিজিক্সে ব্যাচেলর ডিগ্রি নিয়ে গ্র্যাজুয়েশন সম্পন্ন করেন। 

স্কুলে পড়া অবস্থাতেই একবার তিনি হার্ভার্ডের কম্পিউটার সিস্টেম ইউনিভ্যাক ওয়ান কীভাবে কাজ করে সে সম্পর্কে একটি লেকচার শুনে কম্পিউটার বিষয়ে আরও বেশি জানার জন্য প্রবলভাবে আগ্রহী হন।

ফলশ্রুতিতে হার্ভার্ডে পড়ার ফাকে রিচি কম্পিউটারের ওপর আরও বিস্তারিত জানার জন্য কম্পিউটার চর্চা অব্যাহত রাখেন। 

তবে তার বিশেষ আগ্রহ ছিল কম্পিউটার প্রোগ্রামিং বিষয়ে। হার্ভার্ডে থাকা কালেই Massachusetts Institute of Technology (MIT) তে চাকুরি পান। সেসময়ে কম্পিউটার প্রোগ্রামিং বিষয়ে কোন ডিগ্রি অর্জনের সুযোগ ছিল না। 

সে কারণে কম্পিউটার ল্যাবগুলো হাতে-কলমে প্রোগ্রামিং জানে এমন যে কাউকে তাদের কম্পিউটারের কাজে সহযোগিতার জন্য ল্যাবে নিয়োগ দিত। 

কম্পিউটার বিষয়ে রিচির নিরবচ্ছিন্ন আগ্রহই সম্ভবত তাকে কাজের জন্য উপযুক্ত হিসেবে স্বীকৃতি দেয়। MIT এর জন্য অনেক বছর কাজ করেছেন রিচি। 

এখানকার অন্যানা বিজ্ঞানীদের আরও উন্নতমানের কম্পিউটার সিস্টেম ও সফটওয়্যার উদ্ভাবনের জন্য দীর্ঘ সময় ধরে অক্লান্ত সহায়তা দিয়ে গেছেন তিনি। 

অধিকতর পোর্টেবল কম্পিউটারের জন্য অপারেটিং সিস্টেম ডেভেলপের কাজও তিনি শুরু করেন। সে সময়ের অধিকাংশ কম্পিউটার পুরো একটা ঘর জুড়ে ব্যাপৃত থাকলেও তাদের কার্যক্ষমতা ছিল সীমাবদ্ধ। 

ততদিনে অধিকতর ছোট ডেস্কটপ কম্পিউটার ডেভেলপ হয়ে গেছে, অথচ এদের জন্য কোন সহজে ব্যবহার্য অপারেটিং সিস্টেম তখনও ডেভেলপ হয়নি। 

রিচি এরূপ একটি অপারেটিং সিস্টেম তৈরির উদ্যোগ গ্রহণ করেন নি, বরং এর পরিবর্তে প্রোগ্রামিংকে তিনি সর্বদা একটি ধাঁধাঁ হিসেবে নিয়েছেন এবং তার সমাধান করেছেন।


সি বনাম সি++ (C v/s C++)

সি থেকে সি++ এর উৎপত্তি। সি++ হলো সি এর সুপারসেট অর্থাৎ সি এর উন্নততর ভার্সন হলো সি++।

আগে সি++ কে সি (ক্লাসসহ) বলা হতো । সি++ এর এক্সপ্রেশন এবং অপারেটর সমূহ সি- এর এক্সপ্রেশন এবং অপারেটর সমূহের মতো।


সি এবং সি++ এর মধ্যকার পার্থক্য

সি (C)

  1. সি হলো একটি প্রসিডিউরার প্রোগ্রামিং ল্যাংগুয়েজ।
  2. রিজার্ভড কী ওয়ার্ডের সংখ্যা বেশি।
  3. ইনপুট এবং আউটপুট লাইব্রেরি ভিত্তিক এবং ফাংশনসমূহের অন্তর্ভুক্তির মাধ্যমে এর সামগ্রিক প্রক্রিয়া পরিচালিত হয়।
  4. পলিমরফিজম এবং ইনহেরিটেন্স ওভারলোডিং সুবিধা নেই।
  5. সি কম্পাইলার দিয়ে সি++ কম্পাইল করা যায় না।
  6. Scanf ()– ইনপুট নেয়ার জন্য এ ফাংশন ব্যবহৃত হয়। printf () – আউটপুট নেয়ার জন্য এ ফাংশন ব্যবহৃত হয়।
  7. প্রোগ্রাম ডিজাইনে টপ-ডাউন অ্যাপ্রোচ ব্যবহৃত হয়।
  8. গ্লোবাল ভেরিয়েবল-এর মাল্টিপল ডিক্লেয়ারেশন করা যায়।
  9.  main() এর সাথে অন্যান্য ফাংশন কল করে।
  10.  প্রিমিটিভ এবং বিল্ট-ইন ডেটা টাইপকে সাপোর্ট করে।


সি++ (C++)


  1. সি++ হলো একটি অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং ল্যাংগুয়েজ।
  2. রিজার্ভড কী ওয়ার্ডের সংখ্যা বেশি।
  3. ইনপুট এবং আউটপুট এবং কমান্ডের মাধ্যমে গঠিত।
  4. পলিমরফিজম এবং ইনহেরিটেন্স ওভারলোডিং সুবিধা বিদ্যমান।
  5.  বেশির ভাগ সি++ কম্পাইলার দিয়ে সি কম্পাইল করা যায়।
  6. Cin>>- ইনপুট নেয়ার জন্য এ ফাংশন ব্যবহৃত হয়। Cout<<- আউটপুট নেয়ার জন্য এ ফাংশন ব্যবহৃত হয়।
  7.  প্রোগ্রাম ডিজাইনে বটম-আপ অ্যাপ্রোচ ব্যবহৃত হয়।
  8. গ্লোবাল ভেরিয়েবল-এর মাল্টিপল ডিক্লেয়ারেশন করার ও অনুমতি দেয় না।
  9.  main() এর সাথে অন্যান্য ফাংশন কল করে না।
  10. বিল্ট-ইন এবং ইউজার ডিফাইন ডেটা টাইপকে সাপোর্ট করে।


আরও পড়ুন…


C ভাষার ব্যবহার 


বর্তমানে প্রচলিত কম্পাইলার ও অপারেটিং সিস্টেমগুলোর শতকরা ৯০ ভাগেরও বেশি C ভাষায় রচিত। 

C ভাষায় অ্যাসেম্বলি এবং উচ্চতর ভাষার প্রোগ্রামিং কৌশলের সমন্বয় সাধন করা যায় বলে এটি মধ্যস্তরের ভাষা হিসেবে পরিচিত। 

সি ভাষায় সহজেই অত্যন্ত জটিল সমস্যা সমাধান করা যায়। C ভাষাকে কম্পিউটার ভাষার জনক বলা হয়ে থাকে। এ ভাষার সাহায্যে যে ধরনের প্রোগ্রাম লেখা যায় তা হলো|

  1. অপারেটিং সিস্টেম (Operating System)
  2. ল্যাংগুয়েজ কম্পাইলার (Language Compiler)
  3. ল্যাংগুয়েজ ইন্টারপ্রেটার (Language Interpreter)
  4. অ্যাসেম্বলার (Assembler)
  5. ডেটাবেজ প্রোগ্রাম (Database Programme)
  6. টেক্সট এডিটর (Text Editor)
  7. কম্পিউটার গেমস (Computer Games)
  8.  কম্পিউটার ভাইরাস ও এন্টিভাইরাস
  9. ইউটিলিটিজ (Utilities)
  10. নেটওয়ার্ক ড্রাইভারস (Network Drivers)

“সি” কে মাদার অব অল প্রোগ্রামিং ল্যাংগুয়েজ বলা হয় কেন?


সি একটি মধ্যস্তরের ভাষা। এ ভাষায় উচ্চস্তরের ভাষার সুবিধা পাওয়া যায়, আবার নিম্নস্তরের ভাষার সমকক্ষ প্রোগ্রাম রচনা করা যায়। 

সি ল্যাংগুয়েজ দিয়ে প্রায় সব ধরনের প্রোগ্রাম রচনা করা যায়। তাই একে General Purpose Language ও বলা হয়। 

এ ছাড়া প্রোগ্রামিং ভাষা শেখার জন্য এবং প্রোগ্রামিং ভাষার ব্যাকরণ বোঝার জন্য সি সবচেয়ে জনপ্রিয়। তাই সি কে মাদার অব প্রোগ্রামিং ল্যাংগুয়েজ বলা হয়।


C ভাষার প্রোগ্রামের গঠন 


সি প্রোগ্রাম একটি main() ফাংশনসহ এক বা একাধিক ফাংশনের সমন্বয়ে গঠিত একটি প্রোগ্রাম।


ডকুমেন্টেশন সেকশন 

সি প্রোগ্রামের ঐচ্ছিক এ অংশে প্রোগ্রামের প্রয়োজনীয় মন্তব্য (comment) থাকে। প্রোগ্রাম নির্বাহে এ অংশের কোনো ভূমিকা নেই। 

এক লাইনের কমেন্টের জন্য // ব্যবহার করা হয়। যেমন:// This is my first programme in C তবে একাধিক লাইনের কমেন্টের জন্য শুরুতে /* এবং শেষে */ ব্যবহার করা হয়। 

যেমন:
//* This is my first program in C. I have written my comment to clarify my program */


লিংক সেকশন

এ অংশে প্রোগ্রামে ব্যবহৃত বিভিন্ন ফাংশনের জন্য প্রয়োজনীয় হেডার ফাইল সংযুক্ত করা হয়। এটি সি প্রোগ্রামের একটি আবশ্যকীয় অংশ। হেডার ফাইল সংযোগের নিয়ম হলো:

#include<Header_file_name>

যেমন- print() ফাংশন এর হেডার ফাইল stdio.h সংযোগ করার জন্য লিখতে হবে:

#include<studio.h>


ডেফিনেশন সেকশন

অনেক সময় ইউজার ডিফাইন ফাংশন বা main() ফাংশনের অভ্যন্তরে কিছু ধ্রুবক (constant) ব্যবহার করা হয়। এ সকল ধ্রুবককে # define এর মাধ্যমে এ অংশে লেখা হয়। যেমন- 

#define pi=3.14;


গ্লোবাল ডিকলারেশন সেকশন 

যে কোন ফাংশনে অথবা প্রোগ্রামের সর্বত্র ব্যবহৃত হবে এমন ভেরিয়েবলকে গ্লোবাল ভেরিয়েবল বলা হয়। এ অংশে গ্লোবাল ভেরিয়েবল ঘোষণা করা হয়।


মেইন ফাংশন সেকশন 

সি প্রোগ্রাম ফাংশনকে ঘিরে আবর্তিত হয়। এ ফাংশনের দুটি অংশ রয়েছে। যথা: 

  • ১. ঘোষণা অংশ (Declarative part) এবং
  • ২. নির্বাহ অংশ (Executable part)। 

মেইন সেকশনের ঘোষণা অংশে সাধারণত বিভিন্ন টাইপের ভেরিয়েবল, অ্যারে, পয়েন্টার, ফাইল ইত্যাদি ঘোষণা করা হয়। 

নির্বাহ অংশে কমপক্ষে একটি স্টেটমেন্ট থাকতে হয়। উভয় অংশের প্রত্যেক স্টেটমেন্টের শেষে সেমিকোলন (;) থাকতে হবে। 

ফাংশনের সম্পূর্ণ অংশ দ্বিতীয় বন্ধন বা {} দ্বারা আবদ্ধ থাকে। main() হলো সি প্রোগ্রামের আবশ্যকীয় অংশ।


সাবপ্রাগ্রাম সেকশন 

এ অংশে সাধারণত ব্যবহারকারী কর্তৃক তৈরি করা ফাংশন লেখা হয়। সাধারণত main() ফাংশনের শেষে এ সূন ফাংশন থাকে, তবে এদেরকে main() ফাংশনের আগেও লেখা যায়। সাব প্রোগ্রাম সেকশনের ঐচ্ছিক অংশ।


Conclusion

সি এবং সি++ অত্যন্ত জনপ্রিয় শক্তিশালী প্রোগ্রামিং ল্যাংগুয়েজ । এই ল্যাংগুয়েজের সবচে বড় সুবিধা হল এক কম্পিউটারের পোগ্রাম অন্য কমিউটারে চালানো যায়। 


Source:


  1. https://www.section.io/engineering-education/history-of-c-programming-language/#:~:text=The%20C%20programming%20language%20came,the%20nascent%20Unix%20operating%20system.
  2. https://www.britannica.com/technology/C-computer-programming-language
  3. https://www.w3schools.in/c-tutorial/history-of-c/
  4. https://www.geeksforgeeks.org/c-language-set-1-introduction/

সি-প্রোগ্রামিং (C-Programming)

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top