প্রোগ্রামের ভাষা

বিভিন্ন প্রজন্মের প্রোগ্রাম-এর ভাষার খুঁটিনাটি বিষয়

হ্যালো বন্ধুরা, আজকে আমরা আলোচনা করব প্রোগ্রাম নিয়ে। প্রোগ্রাম এর সকল খুঁটিনাটি বিষয় নিয়ে নিচে বিস্তারিত আলোচনা করা হল-

প্রোগ্রাম কি: কোন সমস্যা সমাধানের জন্য কম্পিউটারের ভাষায় ধারাবাহিকভাবে লিখিত কতগুলো কমান্ড বা নির্দেশের সমষ্টিকে প্রোগ্রাম বলা হয়। প্রোগ্রাম লেখার জন্য কম্পিউটারে ব্যবহারযোগ্য বিভিন্ন ধরনের প্রোগ্রাম ভাষা ব্যবহৃত হয়। প্রোগ্রামে লিখিত নির্দেশসমূহ সোর্স প্রোগ্রাম ফাইলে সারিবদ্ধভাবে লেখা হয়। কম্পিউটার এ নির্দেশসমূহকে পর্যায়ক্রমিকভাবে মাধ্যমে নির্দিষ্ট সমস্যার সমাধান করে।

সূচিপত্র-

প্রোগ্রামের ভাষা (Programming Language)

কম্পিউটার সিস্টেমে প্রোগ্রাম রচনার জন্য ব্যবহৃত শব্দ, বর্ণ, অঙ্ক, সংকেত এবং এগুলো বিন্যাসের নিয়ম মিলিয়ে তৈরি হয় প্রোগ্রামের ভাষা বা প্রোগ্রামিং ল্যাংগুয়েজ। বিভিন্ন ধরনের প্রোগ্রাম রচনার জন্য বিভিন্ন ধরনের প্রোগ্রাম ভাষা ব্যবহৃত হয়। প্রোগ্রামিং-এর মাধ্যমে জটিল সমস্যা অল্প সময়ে এবং সহজে সমাধান করা যায়। প্রোগ্রাম রচনার জন্য উপযুক্ত প্রোগ্রামিং ল্যাংগুয়েজ প্রয়োজন হয়.

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

১৯৪৫ সাল থেকে শুরু করে এ পর্যন্ত কয়েকশ প্রোগ্রামিং ল্যাংগুয়েজ বা ভাষা আবিষ্কৃত হয়েছে। এ সকল ভাষাকে বৈশিষ্ট্য অনুযায়ী পাঁচটি স্তর বা প্রজন্মে ভাগ করা যায়। যথা-

  • প্রথম প্রজন্ম বা ফার্স্ট জেনারেশন ভাষা (১৯৪৫) : মেশিন ভাষা (Machine language)
  • দ্বিতীয় প্রজন্ম বা সেকেন্ড জেনারেশন ভাষা (১৯৫০) : অ্যাসেম্বলি ভাষা (Assembly language)
  • তৃতীয় প্রজন্ম বা থার্ড জেনারেশন ভাষা (১৯৬০) : উচ্চতর ভাষা (High level language)
  • চতুর্থ প্রজন্ম বা ফোর্থ জেনারেশন ভাষা (১৯৭০) ও অতি উচ্চতর ভাষা Very high level language)
  • পঞ্চম প্রজন্ম বা ফিফথ জেনারেশন ভাষা (১৯৮০) : স্বাভাবিক বা ন্যাচারাল ভাষা (Natural language)

প্রোগ্রাম রচনার বৈশিষ্ট্যের ভিত্তিতে প্রোগ্রাম ভাষাসমূহকে প্রধানত দু’ভাগে ভাগ করা হয়। যথা-

  • নিম্নস্তরের ভাষা (Low Level Language)
  • উচ্চস্তরের ভাষা (High Level Language)

নিম্নস্তরের ভাষা (Low Level Language)

কম্পিউটার বা অনুরূপ যন্ত্রগুলো সরাসরি বুঝতে পারে এরূপ ভাষাকে নিম্নস্তরের ভাষা বলা হয়। নিম্নস্তরের ভাষা আবার দু’প্রকার। যথা-

  • মেশিন ভাষা (Machine Language) এবং
  • এ্যাসেম্বলি ভাষা (Assembly Language) ।

মেশিন ভাষা (Machine Language)

কম্পিউটার মেশিনের নিজস্ব ভাষাকে মেশিন ভাষা বা নিম্নস্তরের ভাষা বলা হয়। মেশিন ভাষায় 0 ও 1 এ দুই বাইনারি অঙ্ক অথবা হেক্স পদ্ধতি ব্যবহার করে সবকিছু লেখা হয়। কম্পিউটার একমাত্র যন্ত্রভাষাই বুঝতে পারে, অন্য ভাষায় প্রোগ্রাম করলে কম্পিউটার আগে উপযুক্ত অনুবাদকের সাহায্যে তাকে যন্ত্রভাষায় পরিণত করে নেয়।

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

যন্ত্রভাষায় যেসব নির্দেশ দেওয়া হয় তাদের চার ভাগে ভাগ করা যায়, যেমন-

  • গাণিতিক (Arithmetic) অর্থাৎ যোগ, বিয়োগ, গুণ, ভাগ
  • নিয়ন্ত্রণ (Control) অর্থাৎ লোড (Load), স্টোর (Store) ও (Jump) জাম্প
  • ইনপুট-আউটপুট অর্থাৎ পড় (Read) ও (Write) লেখা

মেশিন ভাষায় প্রোগ্রাম রচনার সুবিধা

  • প্রোগ্রাম দ্রুত কার্যকরী হয়
  • কম পরিমাণ লজিক ব্যবহার করে প্রোগ্রাম নির্বাহ করা যায়
  • কম পরিমাণ মেমোরি ব্যবহার করে প্রোগ্রাম নির্বাহ করা যায়
  • এ ভাষায় রচিত প্রোগ্রাম কম্পিউটার সরাসরি বুঝতে পারে, তাই কোনো অনুবাদকের প্রয়োজন হয় না

মেশিন ভাষায় প্রোগ্রাম রচনার অসুবিধা

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

অ্যাসেম্বলি ভাষা (Assembly Language)

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

অ্যাসেম্বলি ভাষায় লিখিত প্রোগ্রামকে মেশিনের ভাষায় রূপান্তরিত করার জন্য অ্যাসেম্বলার নামক এক ধরনের ট্রান্সলেটর বা অনুবাদক প্রোগ্রাম ব্যবহার করা হয় । অ্যাসেম্বলি ভাষায় ব্যবহৃত বিভিন্ন সংকেতকে নিমোনিক বলে। যেমন-ADD, SUB, MUL, DIV ইত্যাদি।

অ্যাসেম্বলি ভাষার নির্দেশে চারটি অংশ থাকে। যথা-

  • ১. লেভেল (Level)
  • ২. অপকোড (Opcode)
  • ৩. অপারেন্ড (Operand)
  • ৪. কমেন্ট (Comment)

অ্যাসেম্বলি ভাষায় প্রোগ্রাম রচনার সুবিধা

  • এ ভাষায় রচিত প্রোগ্রাম দক্ষ ও সংক্ষিপ্ত হয়
  • মেমোরি অ্যাড্রেসের বিবরণের প্রয়োজন হয় না
  • প্রোগ্রাম রচনায় ভুলের পরিমাণ কম হয়
  • মেশিনের অভ্যন্তরীণ গঠন সম্পর্কে জানা হয়
  • ডিবাগিং করা সহজ

অ্যাসেম্বলি ভাষায় প্রোগ্রাম রচনার অসুবিধা

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

মধ্যম স্তরের ভাষা (Mid Level Language)

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

সি ল্যাঙ্গুয়েজ মধ্যম স্তরের ভাষা, যা দিয়ে অপারেটিং সিস্টেমের মতো সিস্টেম প্রোগ্রামিং করা যায়, অন্যদিকে দৈনন্দিন ব্যবহারের অ্যাপ্লিকেশন সফটওয়্যারও তৈরি করা যায়। উদাহরণ : C,C++, Java, FORTH, Macro-assemble, FORTRAN, PASCAL ইত্যাদি। ১৯৬০ সালের দিকে এ ভাষার উদ্ভব হয়। নিম্নস্তরের ভাষা প্রোগ্রামারদের বোঝা কঠিন ছিল বলে মধ্যম স্তরের ভাষা ব্যবহৃত হয়।

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

  • অনুবাদক প্রোগ্রামের প্রয়োজন হয়
  • এ ভাষা মেশিন সরাসরি বুঝতে পারে না
  • উচ্চতর ভাষার তুলনায় এ ভাষা কঠিন

উচ্চস্তরের ভাষা (High Level Language)

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

মানুষ হাই-লেভেল ভাষা দ্রুত লিখতে, বুঝতে ও স্মরণ রাখ পারে। এটি ইংরেজি ভাষার সদৃশ। প্রোগ্রাম লেখার জন্য কম্পিউটারের অভ্যন্তরীণ সংগঠন সম্পর্কে ধারণার প্রয়োজন নেই উদাহরণ- C++, BASIC, PASCAL, FORTRAN ইত্যাদি।

হাই-লেভেল ল্যাঙ্গুয়েজের কতিপয় বৈশিষ্ট্য বা সুবিধা

১. হাই-লেভেল ভাষায় লিখিত প্রোগ্রাম যে কোন কম্পিউটারে ব্যবহার করা যায়
২. এ ভাষা শেখা সহজ এবং দ্রুত প্রোগ্রাম লেখা যায়
৩. প্রোগ্রামে ভুল হবার সম্ভাবনা কম ও সংশোধন করা সহজ
৪. লাইব্রেরি ফাংশন সুবিধা পাওয়া যায়
৫. প্রোগ্রাম লেখার সময় হার্ডওয়্যার নিয়ে ভাবতে হয় না

হাই-লেভেল ল্যাঙ্গুয়েজের অসুবিধা

  • প্রোগ্রাম লেখার পূর্বে স্ট্রাকচার ও কমান্ডের সিনটেক্স জানতে হয়
  • মেশিন ল্যাঙ্গুয়েজে রূপান্তরের জন্য অনুবাদক প্রোগ্রাম প্রয়োজন হয়
  • লো-লেভেল ভাষার তুলনায় বেশি মেমোরি প্রয়োজন পড়ে
  • লো-লেভেল ভাষার তুলনায় নমনীয়তা (Flexibility) কম

হাই-লেভেল ল্যাঙ্গুয়েজের ব্যবহার

হাই-লেভেল ল্যাঙ্গুয়েজ নিম্নলিখিত কাজে ব্যবহৃত হয়-

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

অতি উচ্চতরের ভাষা (Very high level language)

কম্পিউটারে সহজে ব্যবহারের জন্য উদ্ভাবিত বিশেষ কয়েকটি ভাষাকে চতুর্থ প্রজন্মের ভাষা (4GL) বলা হয়। চতুর্থ প্রজন্মের ভাষাকে অতি উচ্চতরের ভাষাও বলা হয়। রিপোর্ট ও পর্দায় ফলাফলের গঠন, ডেটা রেকর্ড, ইনপুট ডেটা প্রভৃতি নির্দিষ্টকরণে সরল কুয়েরি নির্দেশ ব্যবহারের ক্ষমতা চতুর্থ প্রজন্মের ভাষার বৈশিষ্ট্য। প্রধানত বাণিজ্যিক প্রয়োগের জন্য ব্যবহৃত এসব ভাষাকে অনেক সময় এপ্লিকেশন জেনারেটর (Application Generator) বলা হয়।

উচ্চতর ভাষার তুলনায় চতুর্থ প্রজন্মের ভাষা বা 4GL খুবই সহজ, যদিও 4GL এর জন্য প্রসেসিং ক্ষমতা বেশি দরকার। 4GL এর সাহায্যে সহজেই অ্যাপ্লিকেশন তৈরি করা যায় বলে একে Rapid Application Development (RAD) টুলও বলা হয় ডেটাবেজ ম্যানেজমেন্টের সাথে সংশ্লিষ্ট কুয়েরি এবং রিপোর্ট জেনারেটর ও ডেটা সঞ্চালনের জন্য ব্যবহৃত ভাষাসমূহকে (SQL) চতুর্থ প্রজন্মের ভাষা হিসেবে বিবেচনা করা হয়।

এসব ভাষায় ইংরেজি ভাষার মত নির্দেশ দিয়ে কম্পিউটার ব্যবহারকারী ডেটাবেজের সাথে সংযোগ স্থাপন এবং ডেটা আদান-প্রদান করতে পারেন। অধিকাংশ চতুর্থ প্রজন্মের ভাষায় কথোপকথন রীতিতে প্রশ্ন-উত্তরের মাধ্যমে কম্পিউটারের সাথে ব্যবহারকারীর যোগাযোগের ব্যবস্থা থাকে। NOMAD, RPG III, FOCUS, Intellect ইত্যাদি কয়েকটি চতুর্থ প্রজন্মের ভাষা ।

কয়েকটি জনপ্রিয় অতি উচ্চস্তরের প্রোগ্রাম ভাষা

বিভিন্ন সময়ে বিভিন্ন উচ্চস্তরের প্রোগ্রাম ভাষা চালু হয়েছে এবং দিন দিন এদের সংখ্যা বৃদ্ধি পাচ্ছে। এগুলোর কোনটি বর্তমানে চালু আছে, কোনটি বা বিলুপ্ত হয়েছে। আবার কোনটির ব্যবহার নেই বললেই চলে। বর্তমান সময়ে প্রচলিত কয়েকটি উচ্চতরের ভাষা হলো- ভিজুয়্যাল বেসিক, ফোরট্রান, কোবল, প্যাস্কেল, সি, সি++, জাভা ইত্যাদি।

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

বন্ধুদের সাথে শেয়ার করুন:

Similar Posts

Leave a Reply

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