Saturday, November 2, 2013

সি প্রোগ্রামিং ল্যাংগুয়েজের ইতিহাস

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

সি ল্যাংগুয়েজ অনন্য ল্যংগুয়েজের মত হঠাৎ করে আবিষ্কার হয়নি, কিছু ল্যাংগুয়েজের উন্নত সংস্কারই হল সি ল্যাংগুয়েজ। ১৯৬০এর দিকে 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) .

Martin Richards BCPL (Basic Combined Programming Language)

কিন্তু এই ল্যাংগুয়েজ দ্বারা মূল উদ্দেশ্য সাধন হয়নি কারন এই ল্যাংগুয়েজ দিয়ে কিছু নিদিষ্ট বিষয়ের সমাধান করা সম্ভাব হত। এর পর AT & T Bell laboratory এর Ken Thompson পূর্বের CPL এর উন্নত সংস্করন হিসেবে ১৯৭০ সালে তৈরি করেন B নামের প্রোগ্রামিং ল্যাংগুয়েজ। যাতে সমস্যা সমাধানের জন্য অনেক সমস্যা ছিল।
                                             




এই সকল ল্যাংগুয়েজের সীমাবদ্ধতা দূর করার লক্ষে ১৯৭২ সালে 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

No comments:

Post a Comment