প্রোগ্রামিং কি? প্রোগ্রামিং ল্যাঙ্গুয়েজ কি? প্রোগ্রামিং ভাষা সি এর সংক্ষিপ্ত ইতিহাস।

কম্পিউটার প্রোগ্রামিং বিজ্ঞান

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

কম্পিউটার অন করলেই হাজার হাজার ইন্সট্রাকশন কাজ করা শুরু করে। আমরা  মিউজিক শুনি, মিউজিক প্লেয়ার একটা প্রোগ্রাম। যার মধ্যে রয়েছে অনেক গুলো ইন্সট্রাকশন। আমরা গেম খেলি। এক একটা গেম এক একটা প্রোগ্রাম। রয়েছে অনেক হাজার হাজার ইন্সট্রাকশন। আর এই ইন্সট্রাকশন গুলো লেখার কাজই হচ্ছে প্রোগ্রামিং।

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

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

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

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

এখন প্রায় পণ্যই ঘরে বসে কিনতে পারি। আমরা একটা ওয়েব সাইট ভিজিট করি, আমরা পেমেন্ট পরিশোধ করি, সব কিছুর পেছনেই এই প্রোগ্রামিং।

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

কম্পিউটারকে ইন্সট্রাকশন দেওয়ার জন্য যে নিয়ম মানা হয়, তা হচ্ছে কম্পিউটার ল্যাঙ্গুয়েজ। কম্পিউটার আমাদের কথা বুঝতে পারে না। কম্পিউটার বুঝে শুধু ০ এবং ১। আর আমরা তো শুধু ০ এবং ১ দিয়ে কিছু প্রকাশ করতে পারি না। তো প্রোগ্রামিং ল্যাঙ্গুয়েজ আমাদের ইন্সট্রাকশন গুলকে কম্পিউটার বুঝার মত করে ০ এবং ১ এ পরিণত করে দেয়।

অনেক গুলো কম্পিউটার প্রোগ্রামিং রয়েছে। কয়েক হাজার। কিন্তু সব গুলোর ব্যাসিক নিয়ম এক। একটা প্রোগ্রামিং ল্যাঙ্গুয়েজ এ প্রোগ্রামিং করতে জানলে বাকি যে কোন প্রোগ্রামিং ল্যাঙ্গুয়েজে প্রোগ্রাম লেখা যায়। কয়কটি জনপ্রিয় ল্যাঙ্গুয়েজ হচ্ছে C, C++, Java, Phython, C# ইত্যাদি। প্রোগ্রামিং যে কেউ শিখতে পারে। যারা প্রোগ্রামিং পারে, তারা সব সময়ই স্পেশাল। যে কোন একটা ল্যাঙ্গুয়েজ পছন্দ করে আপনিও শুরু করতে পারেন প্রোগ্রামিং। হয়ে যেতে পারেন স্পেশাল দের একজন।

প্রোগ্রামিং ভাষা সি এর সংক্ষিপ্ত ইতিহাস 

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

তেমনি কম্পিউটারের আবিষ্কারের মধুলগ্ন থেকেও একটা ভাষার আমেজ মেশিনের ভিতরে তোয়ার রয়ে গেছে । অর্থাৎ, আপনি যেমন আপনার কোম্পানির কর্মচারীদের এক এক করে কাজ বুঝিয়ে দেন । কম্পিউটারের ইঞ্জিনকে তার কাজ বুঝানোর জন্য যে ভাষাগুলো ব্যবহার হয় তাদেরকে ‘প্রোগ্রামিং ল্যাঙ্গুয়েজ’ বলে। কিন্তু প্রোগ্রামিং কথাটির কোন আভিধানিক অর্থ নেই। আজকে প্রোগ্রামিং সি ভাষার ইতিহাস সংক্ষেপে তোলে ধরবো ।

একটা বিদ্যুৎ চালিত যন্ত্র । যার না আছে প্রাণ, না আছে বলার শক্তি । তার কোন ইচ্ছা, আকাংখা নেই । মালিক যেমন চালায় তেমনি চলে । কিন্তু এই যন্ত্র কোনদিন আপনার আদেশ ছাড়া আর কোন কথায় মাথায় রাখে না । আমি কম্পিউটারের কথায় বলছি , একে পরিচালনার কাজে প্রোগ্রামিং ভাষা ব্যবহার করা হয় ।

“কম্পিউটারকে কার্যপোযোগী করতে যে সব ভাষায় নির্দেশাবলী ও কার্যধারাগুলো বুঝানো হয় তাদেরকে কম্পিউটার প্রোগ্রামিং ভাষা বলে ।” এখনো পর্যন্ত ২৫৬ টি প্রোগ্রামিং ভাষা পৃথিবীতে আবিষ্কৃত হয়েছে। পৃথিবীতে প্রথম প্রোগ্রামিং ল্যাঙ্গুয়েজ হল “মেশিন ভাষা” । তাহলে চলুন জেনে নেয়া যাক মেশিন ভাষাই কি?

মেশিন ভাষা

সহজে কথায় মেশিনকে কাজ করানোর উপযোগী করতে যে নির্দেশাবলী দেয়া হয় তাকে মেশিন ল্যাঙ্গুয়েজ বা মেশিন ভাষা বলে । এই ভাষা ০ এবং ১ এর ভিতরে সীমাবদ্ধ ।  তার মানে ০ এবং ১ ছাড়া কম্পিউটার মেশিন কিছুই বুঝে না। তাহলে কিভাবে এটাকে ভাষা বলা যায় ? যার, স্বরবর্ণ ব্যঞ্জনবর্ণ কিছুইতো নেই ! এ, বি, সি, ডি থাকলেওতো একটা কথা ছিলো ? হাস্যকর হলেও এটাই প্রথম ভাষা যেটা মেশিন বুঝে ।

বিজ্ঞানীরা এই ভাষায় গাণিতিক যুক্তিগত সমস্যাগুলো কম্পিউটার মেশিনে সেটাপ করতো । আর মেথডটা কম্পিউটার ইঞ্জিনে একবার বুঝিয়ে দিলে সে হাজার হাজার কাজ খুব দ্রুত করে দিতে পারে । প্রথম “চার্লস ব্যাবেজ” এই প্রোগ্রামেবল কম্পিউটিং মেশিন তৈরী শুরু করেন । যেটাতে অ্যাডা লাভলেস” মেশিন ভাষায় প্রোগ্রাম রচনা করেন ।

সি ভাষার বিবর্তন

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

এরপর বিজ্ঞানীরা ভাবতে শুরু করলো এমন কোন ট্রান্সলেটর তৈরী করা যায় কি, যেটা ইংরেজির অ্যালফাবেট গুলোকে মেশিন ভাষায় (০ এবং ১) রূপান্তরিত করতে পারে । তারি চিন্তা ভাবনায় ১৯৪৯ সালে এর প্রথম বহিঃপ্রকাশ ঘটে যার নাম “এসেম্বলি প্রোগ্রামিং ল্যাঙ্গুয়েজ” । এরপর প্রোগ্রামিংটা আরো সহজ হয়ে গেলো । ০, ১ দিয়ে আর প্রোগ্রাম লেখার প্রয়োজন নেই । এখন ইংরেজিতে লিখলেও কম্পিউটার বুঝতে পারে। নিচে মেশিন ভাষার একটি উদাহরণ দিলাম,

কাজ

কোড

  i এবং j এর মান যোগ কর
(add i with j)

  0000 0010 1111 1100 1000  

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

কাজকোড
    i এবং j এর মান যোগ কর        ADD        I AND J   

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

প্রোগ্রামিং কে সাধারণ মানুষের ব্যবহারযোগ্য করে গড়ে তোলতে ১৯৫০ সালে আমেরিকান একজন মহিলা বিজ্ঞানী ডঃ গ্রেস হপার তিনটি প্রোগ্রামিং ভাষা তৈরী করেন । যার নাম দেন MATH-MATIC, FLOW-MATIC এবং A2 । এই ভাষাগুলোই বর্তমান যতসব উচ্চতর ভাষার প্রাণকেন্দ্র ।

এর ধারাবাহিকতায় ১৯৬০ সালে ALGOL (Algorithm language) , ১৯৬৭ সালে BCPL (Basic Combined Programming Language) , ১৯৭০ সালে B Language, ১৯৭২ সালে সি  ভাষা (ট্রেডিশনাল) তৈরী হয় । সি (C Language) আসার পর প্রোগ্রামিং জগতে আলোরণ সৃষ্টি হয়ে যায় । এরই ধারাবাহিকতায় সি ভাষাকে আরো উন্নত করা হয় ।

কার্নিঘাম ও রিচ মিলে সি ভাষাকে আরো অনেক উন্নয়ণে কাজ করে । এরপর ১৭৮৯ সালে সি ভাষাকে আমেরিকান ন্যাশনাল স্টেন্ডার্ডস ইন্সস্টিটিউট (ANSI) সি ভাষাকে আদর্শ ভাষা হিসেবে স্বীকৃতি দেয় ।

১৯৯০ সালে ইন্টারনেশন্যাল স্টেন্ডার্ডস অরগানাইজেশন (ISO) স্বীকৃতি পায় । এরপর সকল উচ্চতর ভাষার মূলস্বরূপ এই ভাষাকে সর্বোজন স্বীকৃত আদর্শ ভাষা হিসেবে ১৯৯৯ সালে প্রতিস্থা লাভ করে । আজবধি এই ভাষা সকল প্রোগ্রামারের স্বরলিপি স্বরূপ শিক্ষা নেয়া হচ্ছে ।

এটি হল সি ভাষার বিবর্তন । আজ কত নতুন নতুন উচ্চতর ভাষা তৈরী হয়েছে । কত বিজ্ঞানীর অঢেল পরিশ্রমে আজকের এই উচ্চতর কম্পিউটার । কত সহজেই না আমরা একে ব্যবহার করতে পারছি । এ কৃতজ্ঞতা একজনের বা কয়েক জনের না । এটা বহু জনের জ্ঞান স্বরূপ বিজ্ঞানের আশির্বাদ ।