Programming Language



কম্পিউটার প্রোগাম 

কম্পিউটারে কোনো একটি বিশেষ কার্য সম্পাদন বা সমস্যা সমাধানের জন্য রচিত বা লিখিত ধারাবাহিক কতগুলো বিশেষ নির্দেশাবলী (instruction) বা কমান্ডকে কম্পিউটার প্রোগ্রাম বলে। আর যিনি এসব নির্দেশাবলী রচনা করেন তাকে প্রোগ্রামার বলে। অর্থাৎ যিনি প্রোগ্রামিং করেন তিনি হচ্ছেন কম্পিউটার প্রোগ্রামার।


প্রোগামিং ভাষা

কম্পিউটাকে আমাদের প্রয়োজনীয় নির্দেশাবলী জানানোর জন্য এক বিশেষ ধরণের ভাষা ব্যবহার হয়। এ বিশেষ ধরণের ভাষা কম্পিউটার প্রোগ্রাম রচনার জন্য ব্যবহৃত হয়ে থাকে বলে একে প্রোগামিং ভাষা বা Programming Language বলে।

বিভিন্ন স্তরের প্রোগ্রামের ভাষা


প্রোগ্রামিং ভাষাকে ছয়টি স্তরে ভাগ করা যায়ঃ


১। প্রথম প্রজন্মের ভাষা বা Machine Language
২। দ্বিতীয় প্রজন্মের ভাষা বা Assembly Language
তৃতীয় প্রজন্মের ভাষা বা High Level Language
4। চতুর্থ প্রজন্মের ভাষা বা Very High Level Language
5। পঞ্চম প্রজন্মের ভাষা বা Natural Language

প্রথম প্রজন্ম মেশিন ভাষা বা Machine Language


মেশিন ভাষা হচ্ছে কম্পিউটারের নিজস্ব ভাষা। কম্পিউটার বোঝে শুধু দুইটা জিনিস। ভোল্টেজ হাই আর ভোল্টেজ লো। এ দুইটা অবস্থা দিয়েই কম্পিউটারের যাবতীয় কাজ সম্পন্ন হয়। ভোল্টেজ হাই কে ‘1’ দিয়ে নির্দেশ করা হয় আর ভোল্টেজ লো কে ‘0’ দিয়ে। এভাবে ‘0’ আর 1’ এর কম্বিনেশন দিয়েই সবকিছু বোঝানো হয়। যেমন ধরো – 01100101 এই বাইনারী সংখ্যাটি দিয়ে বোঝানো হয় ADD করা বা যোগ করা। এখন কম্পিউটার যখন এ সংখ্যাটি ইনপুট হিসেবে পায় তখন সে দুটো সংখ্যা যোগ করে।


কম্পিউটার যে ভাষাতেই প্রোগ্রামিং করা হোক না কেন, সব ভাষায় মেশিন ভাষাতে রূপান্তরিত হয় তারপর কাজ করতে পারে।
মেশিন ভাষায় লিখিত প্রোগ্রামকে বলা হয় অবজেক্ট প্রোগ্রাম এবং অন্য যেকোন ভাষায় লিখিত প্রোগ্রামকে বলা হয় উৎস প্রোগ্রাম।

মেশিন ভাষায় যেসব নির্দেশ দেওয়া হয় তাদের চার ভাগে ভাগ করা যায়
যেমন-  
১. গাণিতিক (Arithmetic)          অর্থাৎ যোগ, বিয়োগ, গুণ, ভাগ
২. নিয়ন্ত্রণ (Control)         অর্থাৎ লোড (Load), স্টোর (Store) ও জাম্প (Jump)
৩. ইনপুট-আউটপুট (input output)        অর্থাৎ পড়ো (Read) ও লেখ (Write)
৪. প্রত্যক্ষ ব্যবহার (Direct use) অর্থাৎ আরম্ভ করো (Start), থাম (Halt) ও শেষ করো (End)

মেশিন ভাষার সুবিধা

১। কম্পিউটার সরাসরি এই ভাষা বুঝতে পারে, তাই রূপান্তর করার প্রয়োজন হয় না।

২। মেমোরি স্পেস কম লাগে।
৩। লজিক সার্কিট কম লাগে।
৪। দক্ষ ও সংক্ষিপ্ত প্রোগ্রাম রচনা করা যায়।

মেশিন ভাষার অসুবিধা

১। প্রোগ্রাম লিখা অনেক কষ্টকর ও সময়সাপেক্ষ।

২। মেশিন ভাষায় প্রোগ্রামের ভুল ধরা কঠিন।
৩। কম্পিউটারের অভ্যন্তরীন গঠন সম্বন্ধে পূর্ন ধারনা ছাড়া অর্জন ছাড়া প্রোগ্রাম লিখা কঠিন।

দ্বিতীয় প্রজন্ম অ্যাসেম্বলি ভাষা

অ্যাসেম্বলি ভাষাকে সাংকেতিক ভাষাও বলা হয়। এর প্রচলন শুরু হয় ১৯৫০ সাল থেকে। দ্বিতীয় প্রজন্মের কম্পিউটারে এই ভাষা ব্যাপকভাবে প্রচলিত ছিল। অ্যাসেম্বলি ভাষার ক্ষেত্রে নির্দেশ ও ডেটার অ্যাড্রেস বাইনারি বা হেক্সা সংখ্যার সাহায্যে না দিয়ে সংকেতের সাহায্যে দেওয়া হয়। এই সংকেতকে বলে সাংকেতিক কোড (Symbolic Code) বা নেমোনিক (Nemonic)। এটি অনেকটা সহজবোধ্য।
যেমন:             
          ‘যোগ’ বা Addition করাকে লেখা হয় ADD
          ‘বিয়োগ’ বা Subtraction করাকে লেখা হয় SUB
          ‘গুণ’ বা Multiply কে লেখা হয় MUL
          ‘ভাগ’ বা Division কে লেখা হয় DIV ইত্যাদি।
অ্যাসেম্বলি ভাষায় প্রতিটি নির্দেশের চারটি অংশ থাকে।
          ক. লেভেল, খ. অপ-কোড, গ. অপারেন্ড ও ঘ. কমেন্ট।

অ্যাসেম্বলি ভাষার সুবিধা

  •         অ্যাসেম্বলি ভাষায় প্রোগ্রাম রচনা করা যান্ত্রিক ভাষার তুলনায় অনেক সহজ।
  •         প্রোগ্রাম রচনা করতে কম সময় লাগে।
  •         ভুল ত্রুটি বের করা কষ্টসাধ্য ব্যাপার।
  •         অনুবাদক প্রোগ্রামের প্রয়োজন হয়।
  •         প্রোগ্রাম পরিবর্তন করা সহজ

অ্যাসেম্বলি ভাষার অসুবিধা

  •         প্রোগ্রাম রচনার সময় প্রোগ্রামারকে মেশিন সম্পর্কে ধারণা থাকতে হয়।
  •         ভিন্ন ভিন্ন মেশিনে ভিন্ন ভিন্ন অ্যাসেম্বলি ভাষা ব্যবহার করতে হয়।
  •         ইহা যন্ত্র নির্ভর ভাষা।

তৃতীয় প্রজন্ম উচ্চস্তরের ভাষা
উচ্চতর ভাষা বা হাই লেভেল ভাষার সাথে মানুষের ভাষার (যেমন: ইংরেজি) মিল আছে। এই স্তরের ভাষায় লিখিত প্রোগ্রাম বিভিন্ন ধরনের মেশিনে ব্যবহার করা সম্ভব। অর্থাৎ, এই প্রোগ্রাম ভাষা কম্পিউটার সংগঠনের নিয়ন্ত্রণের ঊর্ধ্বে, এই জন্য এসব ভাষাকে উচ্চতর ভাষা বলা হয়। এটি মানুষের জন্য বুঝতে পারা খুব সহজ কিন্তু কম্পিউটার সরাসরি বুঝতে পারে না বলে অনুবাদক প্রোগ্রামের সাহায্যে একে মেশিন ভাষায় রূপান্তরিত করে নিতে হয়। উচ্চস্তরের ভাষার প্রকারভেদ:

সাধারণ কাজের ভাষা (General Purpose Language): যেসব ভাষা সব ধরনের কাজের উপযোগী করে তৈরি করা হয় তা সাধারণ কাজের ভাষা নামে পরিচিত। যেমন BASIC, PASCAL, C ইত্যাদি।
                    
বিশেষ কাজের ভাষা (Special Purpose Language) : আর যেসব ভাষা বিশেষ বিশেষ কাজের উপযোগী করে তৈরি করা হয় তা বিশেষ কাজের ভাষা নামে পরিচিত। যেমন:  COBOL, ALGOL, FORTRAN ইত্যাদি।

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


উচ্চস্তরের ভাষার ব্যবহার

  •         বড় প্রোগ্রাম তৈরির কাজে।
  •         বৃহৎ ডেটা প্রসেসিং এর কাজে ব্যবহৃত প্রোগ্রাম তৈরি করতে।
  •         যেসব ক্ষেত্রে প্রচুর মেমরির প্রয়োজন সেসব ক্ষেত্রের সফটওয়্যার তৈরির কাজে।
  •         জটিল গাণিতিক নিকাশে সফটওয়্যার তৈরির কাজে।
  •         এ্যাপ্লিকেশন প্যাকেজ সফটওয়্যার তৈরির কাজে।
  •         বিভিন্ন ধরনের অটোমেটিক প্রসেস কন্ট্রোলের কাজে।

4GL বা Fourth Generation Language

কম্পিউটারে ব্যবহৃত বিশেষ কয়েকটি ভাষাকে 4GL বলে। এ প্রজন্মের ভাষা কে অতি উঁচু স্তরের ভাষা (Very High Level Language) বলে। পুঙ্খানুপঙ্খ বিস্তারিতভাবে প্রক্রিয়াকরণের বর্ণনা দিতে হ না বলে চতুর্থ প্রজন্মের ভাষাকে নানপ্রসিডিউলার ল্যাংগুয়েজও বলা হ।এ প্রজন্মের ভাষা ব্যবহার করে সহজেই অ্যাপ্লিকেশন প্রোগ্রাম তৈরি করা যা বলে একে র‍্যাপিড অ্যাপ্লিকেশন ডেভেলপমেন্ট (RAD) টুল বলা হ। অধিকাংশ চতুর্থ প্রজন্মের ভাষা কথোপকথন রীতিতে প্রশ্ন-উত্তরের মাধ্যমে কম্পিউটারের সাথে ব্যবহারকারীর যোগাযোগের ব্যবস্থা থাকে। এই প্রজন্মের ভাষা গুলো সাধারনত Database এর ক্ষেত্রে Query languages হিসাবে, Report generators, Applications generators. হিসাবে ব্যাবহার করা হয়।
যেমনঃ SHOW ALL THE Students WHO SCORED ABOVE 80. দেখা যাচ্ছে যে এই প্রজন্মের ভাষা অনেকটাই স্বাভাবিক কথাবার্তার মত।
উদাহরণঃ SQL,Oracle Report, CSS, Haskell, Python, Ruby, PHP, Perl etc.


5GL বা Fifth Generation Language :

পঞ্চম প্রজন্মের ভাষাগুলোর মেইন টার্গেট হল, কম্পিউটার কে মানুষের ভাষা বুঝানো। বাইনারি কোড বা মেশিন কোড, গাণিতিক ফরমুলা ইত্যাদি ব্যতিরেকে মানুষ যাতে কমিউটারকে নিজের ভাষায় ইনপুট দিতে পারে। এবং কম্পিউটার ও সে ভাষা বুঝে তদানুযায়ী কাজ করবে। বিভিন্ন এক্সপার্ট সিস্টেম, রোবটিক্স, কৃত্রিম বুদ্ধিমত্তা (Artificial Intelligence) ইত্যাদি তে Fifth Generation Language ব্যাবহার করা হচ্ছে। পঞ্চম প্রজন্মের কিছু ভাষা যেমনঃ Lisp, Prolog, OPS5, Mercury ইত্যাদি।


Natural Language

ন্যাচারাল ল্যাংগুয়েজ দু প্রকার। একটি হলো মানুষের ভাষা যেমন – বাংলা, ইংরেজি, আরবি, স্প্যানিস ইত্যাদি এবং অন্যটি হলো প্রোগ্রামিং ল্যাংগুয়েজ যা মানুষের ভাষা ব্যবহার করে কম্পিউটারের সাথে স্বাভাবিক সম্পর্ক তৈরি করে।

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

No comments:

Post a Comment