প্রোগ্রামিং ভাষা (Programming Language) হলো নির্দেশাবলীর একটি সেট যা একটি কম্পিউটারের সাথে যোগাযোগ এবং নিয়ন্ত্রণ করতে ব্যবহার করা হয়। সহজ ভাবে বলতে গেলে, প্রোগ্রামিং ভাষা হল এক ধরনের লিখিত ভাষা যা কম্পিউটারকে কী করতে হবে তা বলে। এই ভাষাগুলো মূলত ওয়েবসাইট ডিজাইন, অ্যাপলিকেশন তৈরি, অপারেটিং সিস্টেম বিকাশ, মহাকাশযান নিয়ন্ত্রণ এবং ডেটা বিশ্লেষণ করতে ব্যবহৃত হয়।
প্রোগ্রামিং ভাষা কম্পিউটার সিস্টেমের মধ্যে যোগাযোগের প্রধান মাধ্যম। কম্পিউটার সরাসরি ইংরেজি বুঝতে পারে না, তাই প্রোগ্রামিং ভাষায় একে অনুবাদ করতে হয়। আমরা জানি, একটি কম্পিউটার বিভিন্ন ক্রিয়াকলাপ সম্পাদনের জন্য শুধুমাত্র বাইনারি সংখ্যাগুলো বোঝে যা ০ এবং ১। কিন্তু প্রোগ্রামিং ভাষাগুলো কম্পিউটারে বিভিন্ন ধরণের কাজের জন্য তৈরি করা হয়। কম্পিউটারের প্রথম প্রজন্ম থেকে চতুর্থ প্রজন্ম পর্যন্ত কম্পিউটারের সাথে যোগাযোগের জন্য বেশ কয়েকটি প্রোগ্রামিং ভাষা ব্যবহার করা হয়েছে।
কিছু গুরুত্বপূর্ণ প্রোগ্রামিং ভাষার উদাহরণ যেমন, Python, Ruby, Java, JavaScript, C, C++, এবং FORTRAN ইত্যাদি। সকল কম্পিউটার প্রোগ্রাম এবং কম্পিউটার সফ্টওয়্যার লিখতে এসব প্রোগ্রামিং ভাষা ব্যবহার করা হয়। এছাড়া আরো কিছু বিভিন্ন প্রোগ্রামিং ভাষা হল:
সি ভাষা (C language)
সি++ (C++)
ফোর্টান (Fortan)
প্যাসকেল (Pascal)
জাভা (Java)
পিএইচপি (PHP)
বেসিক (BASIC)
জাভাস্ক্রিপ্ট (Javascript)
পাইথন (Python)
প্রধানত তিন ধরনের প্রোগ্রামিং ভাষা রয়েছে যেমন মেশিন ভাষা, অ্যাসেম্বলি ভাষা এবং উচ্চ-স্তরের ভাষা।
১. মেশিন ভাষা (Machine language)
মেশিন ভাষা হল নিম্ন-স্তরের প্রোগ্রামিং ভাষাগুলোর মধ্যে একটি যা কম্পিউটারের সাথে যোগাযোগের জন্য তৈরি করা প্রথম প্রজন্মের ভাষা। এটি মেশিন কোডে লিখিত ০ এবং ১ বাইনারি ডিজিট উপস্থাপন করে কাজগুলো বুঝতে এবং সম্পাদন করতে সহজ করে তোলে। আমরা জানি যে একটি কম্পিউটার সিস্টেম বৈদ্যুতিক সংকেত চিনতে পারে তাই এখানে ০ মানে বৈদ্যুতিক পালস বন্ধ করা এবং ১ মানে বৈদ্যুতিক পালস চালু করা। এটি কম্পিউটার দ্বারা বোঝা খুব সহজ এবং প্রক্রিয়াকরণের গতিও বৃদ্ধি করে।
মেশিন ল্যাঙ্গুয়েজ ব্যবহার করার প্রধান সুবিধা হল কোড অনুবাদ করার জন্য কোন অনুবাদক প্রোগ্রাম প্রয়োজন নেই, কারণ কম্পিউটার সরাসরি বুঝতে পারে। মেশিন ল্যাঙ্গুয়েজ কম্পিউটারের পক্ষে বোঝা সহজ কিন্তু প্রোগ্রামারের পক্ষে বোঝা কঠিন এবং টাইপ করা ক্লান্তিকর।
২. অ্যাসেম্বলি ভাষা (Assembly language)
অ্যাসেম্বলি ভাষা হল দ্বিতীয়-প্রজন্মের একটি নিম্ন-স্তরের প্রোগ্রামিং ভাষা। এখানে মেশিন ভাষার মতো সংখ্যা ব্যবহার করার পরিবর্তে, ইংরেজি ফর্ম এবং প্রতীকগুলোতে শব্দ বা নাম ব্যবহার করা হয়। অ্যাসেম্বলি ভাষায় শব্দ, নাম এবং প্রতীক ব্যবহার করে লেখা প্রোগ্রামগুলোতে অ্যাসেম্বলার ব্যবহার করে মেশিন ভাষায় রূপান্তর করা হয়। কারণ একটি কম্পিউটার কেবলমাত্র মেশিন কোড ভাষা বোঝে তাই আমাদের একটি অ্যাসেম্বলার প্রয়োজন যেটি অ্যাসেম্বলি স্তরের ভাষাকে মেশিন ভাষায় রূপান্তর করতে পারে যাতে কম্পিউটার নির্দেশনা পায় এবং দ্রুত প্রতিক্রিয়া জানায়।
এই ভাষার প্রধান অসুবিধা হল এটি শুধুমাত্র একটি সিপিইউ-এর জন্য লেখা হয় এবং অন্য কোন সিপিইউতে চলে না। কিন্তু এর গতি এটিকে আজ সবচেয়ে বেশি ব্যবহৃত নিম্ন-স্তরের ভাষা করে তোলে যা অনেক প্রোগ্রামার ব্যবহার করে।
৩. উচ্চ-স্তরের ভাষা (High-level language)
উচ্চ-স্তরের ভাষাগুলো বর্তমানে সর্বাধিক ব্যবহৃত প্রোগ্রামিং ভাষা। এটি তৃতীয় প্রজন্মের ভাষা যা অনেক প্রোগ্রামার দ্বারা ব্যবহৃত হয়ে আসছে। এটি ইউজার ফ্রেন্ডলি কারণ প্রোগ্রামগুলো ইংরেজিতে শব্দ, চিহ্ন, অক্ষর এবং সংখ্যা ব্যবহার করে লেখা হয়।
উচ্চ-স্তরের ভাষাগুলো অ্যাসেম্বলি বা মেশিন ভাষার তুলনায় উল্লেখযোগ্যভাবে বেশি পাঠযোগ্য। অনেক উচ্চ-স্তরের ভাষায় অন্তর্নির্মিত কমান্ড রয়েছে যা প্রোগ্রামারকে লুপ লিখতে, বিভিন্ন ডেটার ভেরিয়েবল তৈরি করতে এবং স্ট্রিংগুলোকে ম্যানিপুলেট করতে সাহায্য করে।
উচ্চ-স্তরের ভাষাগুলো প্রোগ্রামারের পক্ষে পড়তে, লিখতে এবং ডিবাগ করতে অনেক সহজ করে তোলে। বর্তমানে বহুল ব্যবহৃত উচ্চ-স্তরের ভাষাগুলো মধ্যে রয়েছে যেমন COBOL, FORTRAN, BASIC, C, C++, PASCAL, LISP, Ada, Algol, Prolog এবং Java ইত্যাদি।