প্রোগ্রামিং ভাষা সি এর সংক্ষিপ্ত ইতিহাস (ইতিহাসের সহজ পাঠ)

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

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

মেশিন ভাষা

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


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

মেশিন ভাষায় প্রোগ্রাম রচনা এতো কঠিন ছিলো যে , সামান্য কোডে ত্রুটি হলে সমগ্র প্রোগ্রামটাই নতুন করে শুরু করতে হত । এতো বিশাল ০ এবং ১ এর মাঝে ত্রুটি খুঁজাটা প্রায়ই অসম্ভব ছিলো । তাই নতুন করে শুরু করাটাই বুদ্ধিমানের কাজ ছিলো । এরপর বিজ্ঞানীরা ভাবতে শুহরু করলো এমন কোন ট্রান্সলেটর তৈরী করা যায় কি, যেটা ইংরেজির অ্যালফাবেট গুলোকে মেশিন ভাষায় (০ এবং ১) রূপান্তরিত করতে পারে । তারি চিন্তা ভাবনায় ১৯৪৯ সালে এর প্রথম বহিঃপ্রকাশ ঘটে যার নাম "এসেম্বলি প্রোগ্রামিং ল্যাঙ্গুয়েজ" । এরপর প্রোগ্রামিংটা আরো সহজ হয়ে গেলো । ০, ১ দিয়ে আর প্রোগ্রাম লেখার প্রয়োজন নেই । এখন ইংরেজিতে লিখলেও কম্পিউটার বুঝতে পারে। নিচে মেশিন ভাষার একটি উদাহরণ দিলাম,
কাজ
কোড
  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) স্বিকৃতি পায় । এরপর সকল উচ্চতর ভাষার মূলস্বরূপ এই ভাষাকে সর্বোজন স্বীকৃত আদর্শ ভাষা হিসেবে ১৯৯৯ সালে প্রতিস্থা লাভ করে । আজবধি এই ভাষা সকল প্রোগ্রামারের স্বরলিপি স্বরূপ শিক্ষা নেয়া হচ্ছে । নিচের চিত্র থেকে দেখে নিন এই বিবর্তনের তথ্যমূলক চিত্রটি ।

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