সি টিউটোরিয়াল, পর্ব ৩- (সি ল্যাংগুয়েজের ইতিহাস)

urlসি ল্যাংগুয়েজের পূর্বে তথা ১৯৭২ এর পূর্বে যে সকল ল্যংগুয়েজ ডেভেলপ করা হয় ঐ সকল ল্যাংগুজের বেশির ভাগ ল্যাংগুয়েজই নিদিষ্ট কিছু বিষয়ের সমস্যা সমাধানের জন্য তৈরি করা হয়েছিল। কিন্তু সি ল্যাংগুয়েজ তৈরি করা হয় সকল কাজের ব্যবহার উপযোগি করে। যা একই সাথে ব্যবসায়িক কাজে, বৈজ্ঞানিক কাজে, ইঞ্জিনিয়ারিং কাজে ব্যবহার করা যায়। অনন্য প্রোগ্রামিং ল্যাংগুয়েজের চাইতে সি এর লাইব্রেরী ফাংসন অনেক শক্তিশালী ও সমৃদ্ধ।

18.2সি ল্যাংগুয়েজ অনন্য ল্যংগুয়েজের মত হঠাৎ করে আবিষ্কার হয়নি, কিছু ল্যাংগুয়েজের উন্নত সংস্কারই হল সি ল্যাংগুয়েজ। ১৯৬০এর দিকে ALGOL, COBOL, Ada ইত্যাদি ল্যাংগুয়েজ গুল ডেভেলপ করা হয়। তখনকার সময়ে এই সকল ল্যংগুয়েজ গুল এক একটি এক এক কাজের জন্য ব্যবহার করা হত।  ফলা ফল হিসেবে একাধিক কাজের জন্য একাধিক ল্যাংগুজের জানার প্রয়োজন হয়। যা কঠিন ও জটিল কাজ। এই সকল সমস্যা দূর করার জন্য ডেভেলপাররা চাইল এমন একটি ল্যাংগুজের তৈরি করব যা দিয়ে সব সমস্যার সমাধান করা যাবে। ফলশ্রুতিতে ডেভেলপাররা সম্মেলিত ভাবে ১৯৬০ তৈরি করেন ALGOL 60(Algorithmic Languge 60). যা খুব শক্তিশালী ছিল না। এরপর Cambridge Univercity ১৯৬৩ সালে ডেভেলপ করে CPL(Combined Programming Languge). CPL এর গঠন ছিল কঠিন ও জটিল তাই সহজেই এই ল্যাংগুয়েজ রপ্ত করা সম্বাভ ছিল না। এর পর আবারো ১৯৬৭ সালের দিকে Cambridge Univercity  এর “Martin Richards” CPL কে অনুকরন করে তৈরি করেন BCPL (Basic Combined Programming Languge) . কিন্তু এই ল্যাংগুয়েজ দ্বারা মূল উদ্দেশ্য সাধন হয়নি কারন এই ল্যাংগুয়েজ দিয়ে কিছু নিদিষ্ট বিষয়ের সমাধান করা সম্ভাব হত। এর পর AT & T Bell laboratory এর Ken Thompson পূর্বের CPL এর উন্নত সংস্করন হিসেবে ১৯৭০ সালে তৈরি করেন B নামের প্রোগ্রামিং ল্যাংগুয়েজ। যাতে সমস্যা সমাধানের জন্য অনেক সমস্যা ছিল।

xcxcএই সকল ল্যাংগুয়েজের সীমাবদ্ধতা দূর করার লক্ষে ১৯৭২ সালে AT & T Bell laboratory এর “Dennis Ritchie” B ও BCPL অনুকরন করে DEC PDP-11 কম্পিউটারে ব্যবহার উপযোগী করে UNIX অপারেটিং সিষ্টেম ব্যবহার করে তৈরি করেন C ল্যাংগুয়েজ। এতে করে B প্রোগ্রামিং ল্যাংগুজের সকল সিমাবদ্ধতা দূর হয়ে যায়। সেই সময় মাইক্র কম্পিউটারের জনপ্রিয়তা বৃদ্ধির সাথে সাথে সি প্রোগ্রামিং লায়ংগুয়েজ হিসাবে বেশি ব্যবহৃত হত ও একই সাথে ব্যপক জনপ্রিয়তা পায় কারন তখনকার প্রেক্ষাপটে সি ছিল একমাত্র ল্যংগুয়েজ যা যে কম্পিউটারে ডেভেলপ করা হত ঐ কম্পিউটার ছাড়াও অন্য কম্পিউটারে চালানো যেত। সি এর জনপ্রিয়তা বৃদ্ধির কারনে ১৯৮৩ সালে ANSI (American National Standard Institute) C ল্যাংগুয়েজের একটি আদর্শ মান নির্ধারন করে। এই আদর্শ মান সম্বলিত সি ল্যাংগুয়েজই হল ANSI C. ANSI C তে পূর্বের সি এর সকল ফিচার এড করার সাথে সাথে নতুন কিছু ফিচারও যোজ করা হয়। বর্তমেন ব্যবহৃত সকল কম্পাইলার(অনুবাদক) ANSI এর মান আনুযায়ী তৈরি করা।

সি ল্যাংগুয়েজের বৈশিষ্টঃ

সি একটি মিড-লেভেল ল্যাংগুয়েজঃ

 এ যাবত কালের আবিষ্কৃত সব ল্যাংগুয়েজ গুলকে যদি লেভেল হিসেবে ধরা হয় তাহলে দেখা যাবে যেঃ-

হাই লেভেল ল্যাংগুয়েজঃ যে সকল ল্যংগুয়েজ বিভিন্ন ধরনের ডাটা টাইপ নিয়ে কারে তাদেরকে হাই লেভেল ল্যংগুয়েজ বলে। যেমনঃ-

  • ADA
  • MODULA-2
  • PASCAL
  • COBOL
  • FORTRAN
  • BASIC

লো লেভেল ল্যংগুয়েজঃ যে সকল ল্যংগুয়েজ বিট-বাইট ও মেমরী এড্রেস নিয়ে কাজ করে তাদেরকে লো লেভেল ল্যাংগুজে বলে। যেমনঃ-

  • Assembly

মিড লেভেল ল্যাংগুয়েজঃ যে সকল ল্যংগুয়েজ হাই লেভেল ল্যাংগুয়েজের মত ডাটা টাইপ ও লো লেভেল ল্যংগুয়েজের মত বিট-বাইট ও মেমরি এড্রেস নিয়ে কাজ করে তাদেরকে মিড লেভেল ল্যাংগুয়েজ বলে। যেমনঃ-

  • C
  • FORTH
  • Macro-Assembler

programming_languagesসি  একই সাথে বিট-বাইট, মেমরি এড্রেস ও একই সাথে বিভিন্ন ডাটা টাইপ নিয়ে কাজ করে তাই সি একটি মিড লেভেল ল্যাংগুয়েজ। মিড লেভেল ল্যাংগুয়েজ হয়ার করনে সি এর জনপ্রিয়তা সবচেয়ে বেশি কারন এই সি ব্যবহার করেই অনেক প্রোগ্রামিং ল্যংগুয়েজ ডেভেলপ করা যায় ও ডেভেলপ হচ্ছে। তেমনই একটি ল্যাংগুয়েজ হচ্ছে জাভা।

সি একটি ষ্টানডার্ড ল্যাংগুয়েজঃ

COBOL, BASIC, Assembly ল্যাংগুয়েজ গুলতে বড় প্রেওগ্রাম গুলকে ছোট ছোট অংশে ভাগ করে যায়না যার কারনে লুপ তথা একই কাজ বার বার করতে গেলে প্রোগ্রাম এলোমেলো হয়ে যায় এবং সঠিক ফলাফল পাওয়া যায়না। COBOL, BASIC, Assembly ল্যাংগুয়েজে লুপ চালনোর জন্য সাধারনত goto এবং jump ব্যবহার করা হয় যার কারনে এসব সমস্যা হয়। কিন্তু সি তে বড় প্রোগ্রামগুলকে ছোট ছোট ভাগে ভাগ করে লিখা যায় এবং লুপ চালানোর জন্য while,  do, for ব্যবহার করা হয়। যার কারনে প্রোগ্রাম এক স্থান থেকে অনত্র নেওয়ার প্রয়োজন পরেনা বরং লুপের মধ্যেই থাকে।

সি একটি জেনারেল পারপাস ল্যাংগুয়েজঃ

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

সি ল্যাংগুয়েজের ব্যবহার ক্ষেত্রঃ

  1. Opareating system Develop
  2. Database Software Develop
  3. Virus and Anti-Virus Develop
  4. Compliers Develop
  5. Interpreters, etc

সি প্রোগ্রামের ফম্যাটঃ

সি তে এক বা একাধিক ফাংশন থাকে তবে তার মধ্য main function থাকে যার মধ্যে মূল প্রোগ্রামটি লিখা হয়। সি মূলত কয়েকটি অংশ/Section মিলে একটি পূর্নাজ্ঞ প্রোগ্রাম হয়। অংশগুল হল।

  1. Documentation Section
  2. Link Section
  3. Definition Section
  4. Global Section
  5. Main Function Section
  6. Sub Program  sectio

6.I.  Function1 section
6.II. Fuction2 Section
6.III. Function3 Section

সি এর কম্পাইলারঃ

4সি এক কম্পিউটারের ভাষায় অর্থাৎ মেশিন ভাষায়(0,1) এ রুপান্তর করার জন্য একাধিক কম্পাইলার তথা অনুবাদক ব্যবহার করা হয়। তারমধ্য Turbo C অন্যতম। যদিও Turbo C একটি পুরনো কম্পাইলার ও এতে কাজ করা অনেক জটিল। আমরা আমাদের এই টিউটোরিয়াল পর্বে Turbo C ব্যবহার না করে CodeBlocks ব্যবহার করব। কারন CodeBlocks প্রোচুর এডভান্স লেভেলের ও শক্তিশালী কম্পাইলার। এতে জটিলতা কয়াটিয়ে সহজেই পপ্রোগ্রাম লিখা যায়। CodeBlocks ওপেন সোর্স কম্পাইলার যা একই সাথে লিনাক্স, ম্যাক ও উন্ডোজে ব্যবহার করা যায়।CodeBlocks এর সাইট লিংক http://www.codeblocks.org/downloads/26  থেকে ডাউনলোড করে নিন এবং অনন্য সব সাধারন আপ্লিকেশনের মত করেই ইন্সটল করুন।

১ম প্রোগ্রামঃ

Codeblocks ওপেন করুন এবং file –> New –> Empty file নির্বাচন করুন। Untitled1 name txt editor ওপেন হবে। এখানেই আমাদের সি ল্যাংগুয়েজে কোড লিখবো। ফাইলিটি সেভ করুন, এতে করে কী-ওয়ার্ড গুল আটোমেটিক সাজেষ্ট করবে। এখন আমরা আমাদের প্রথম প্রোগ্রাম লিখব, লিখুন:-

void main (){

printf(“Hello World”);

}

2

F9 প্রেস করুন অথবা মার্কা করা টুলে ক্লিক করুন  fsdf1 অথবা মেনুবার থেকে Build –> Build and run এ ক্লিক করুন।

 কোড একই সাথে কম্পাইল হবে ও রান করবে। আপনি যে লোকেশনে ফাইলে সেভ করেছেন ঐ লোকেশনে .exe এক্সটেনশনে আপনার কোড বাইল্ড হবে এবং ঐ লোকেশন থেকে রান করেবে।

কোড বিশ্লেষন ও আবশ্যক কিছু বিষয়ঃ

সি তে ফাংশন ডিক্লেয়ার(লেখার) করার নিয়ম হচ্ছে –

You_function_name(argument ){

Statement1 ;

statement2 ;

}

000081-librariesYour_function_name হল যে ফাংশন ব্যবহার করা হবে অথবা তৈরি করা হবে তার নাম এরপর () এর মধ্যে হবে আরগুমেন্ট, যদি ফাংশনে কোন আরগুমেন্ট না থাকে তাহলে শুধুমাত্র () লিখতে হবে। এর পর {} এর মধ্য ষ্টেটমেন্ট লিখতে হবে। আর প্রতিটি ষ্টেটমেন্টের শেষে ; দিতে হবে। এখানে ফাংশন হচ্ছে একটি বই এর মত এর একটি বইয়ে যেমন অনেক গুল অধ্যায় থাকে এবং এক এক অধ্যায়ে এক এক বিষয় নিয়ে আলোচনা করা হয় তেমনি করে একটি সি প্রোগ্রামিং ল্যাংগুয়েজেরও অনেক গুল ফাংশন থাকতে পারে এবং এক এক ফাংশনে এক এক কাজের কোড লিখা হয়। ষ্টেটমেন্ট হচ্ছে নির্দেশ। অর্থাৎ কি করা হবে তাই।

এসব নিয়ে ধীরে ধীরে আরো বিস্তারিত আলোচনা হবে। এসব ছাড়াও আরো কিছু বেসিক নিয়ম সি তে প্রোগ্রাম করার সময় মেনে চলতে হয়। আমরা আলোচনার সাথে এবং বিষয় বস্তুর সাথে সেই সব শিখব। আজকে এই পর্যন্তই। সবাই ভাল থাকবেন ও সুস্থ থাকবেন।

7 thoughts on “সি টিউটোরিয়াল, পর্ব ৩- (সি ল্যাংগুয়েজের ইতিহাস)”

  1. ইমরান ভাই আমার নাম নাদিম, আমি build and run এ ক্লিক করলেও response পাওয়া যায় না
    আর code block প্রোগ্রাম চালু করার সাথে সাথে এই error notice দেয়:-
    Environment error
    can’t find executable in your configured search path’s for GNU GCC
    এখন আমকে কি করতে হবে plz কষ্ট করে জানান, আমি আপনার reply এর অপেক্ষায় আছি।

    1. দুঃখিত নাদিম ভাই সময় নিয়ে রিপ্লাই করার জন্য। আসলে আমি কখন এ ধরনের সমস্যার সম্মুখিন হই নাই তাই বলতে পারবন কি থেকে এই সমস্যা হচ্ছে। পরামর্শ দিতে পারি আর তা হচ্ছে এই সিরিজের প্রথম দিকের কিছু টিউটোরিয়াল দেখে নতুন করে সব কিছি ইন্সটল করে দেখতে পারেন।

      1. আাবিদ হোসেন

        তবে…….Response এর সমস্যায় আমিও মাঝে মাঝে ভুগি …তাই কম্পাইলার চেন্জ করছি……কিন্তু অন্য কম্পাইলার ব্যবহার জটিল এবং কঠিন..(..খানিকটা..)

    2. আাবিদ হোসেন

      ভাই এবযাবত কালে এ সমস্যা আমিও পেয়েছিলাম ….একটা কম্পাইলার ..৭বার ডাউনলোড দিয়েও কাজ হয়নি ( আমাদের এখানে ঠেলাগাড়ির মত স্পিড নেট এর.)..তাই অনেক ব্লগ খুজে ..সমাধান হইল…..প্রথমে কোডব্লক ওপেন করে setting এ compiler এ ক্লিক করে Reset Defaults এ ক্লিক করুন,….পরে ৩টা ডায়ালগ বক্স আসলেদ ওকে এবং সবশেষে ওকে দিয়ে দিলেই…….কাজ শেষ…আশা করি সমস্যা সমাধান হবে…

Leave a Comment