| গোলাম সরোয়ার চৌধুরী |

প্রোগ্রাম, প্রোগ্রামের প্রকারভেদ ও প্রোগ্রামার

কতগুলো নির্দিষ্ট, যৌক্তিক ও পর্যায়ক্রমিক নির্দেশনা যেগুলো অনুসারে কাজ করা হলে নির্দিষ্ট কোন সমস্যার সমাধান করা যায় তাকেই বলা হয় প্রোগ্রাম। আর এই কাজটি যখন কম্পিউটার সহযোগে করা হয় তখন তাকে বলা হয় কম্পিউটার প্রোগ্রাম। প্রোগ্রাম করার পদ্ধতিকে বলা হয় প্রোগ্রামিং। যিনি আদর্শ মান বজায় রেখে প্রোগ্রাম লিখেন তাকে বলা হয় প্রোগ্রামার। সাধারণত প্রোগ্রামার বলতে কম্পিউটার প্রোগ্রামারকেই বোঝায়। সর্বপ্রথম প্রোগ্রামার হলেন “Ada Lovelace” নামের একজন নারী।

ব্যবহার ও কার্যকারিতার উপর ভিত্তি করে কম্পিউটার প্রোগ্রামকে সাধারণত দুই শ্রেণিতে ভাগ করা হয়:–

১। এপ্লিকেশন প্রোগ্রাম (Application Program)

মানুষের দৈনন্দিন কাজে ব্যবহারের জন্য যে সকল প্রোগ্রাম তৈরী করা হয় সেগুলোই মূলত এপ্লিকেশন প্রোগ্রাম। যেমন-মাইক্রোসফট ওয়ার্ড (Microsoft Word), বিভিন্ন ধরনের মিডিয়া প্লেয়ার(Media Player), এডবি ফটোশপ(Adobe Photoshop), ইত্যাদি।

২। সিস্টেম প্রোগ্রাম (System Program)

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

সফ্‌টওয়্যার, সফ্‌টওয়্যার ইঞ্জিনিয়ার ও অপারেটিং সিস্টেম

আসলে সফ্‌টওয়্যার ও প্রোগ্রামের মধ্যে তেমন কোন পার্থক্য নেই। একটি প্রোগ্রামকে যখন ব্যবহারের জন্য উপযোগী করে এর সাথে একটি ব্যবহারিক দিক নির্দেশিকাসহ প্রকাশ করা হয় তখন তাকে বলে সফ্‌টওয়্যার। যিনি সফ্‌টওয়্যার উন্নত(develop) বা তৈরী করেন তাকে বলে সফ্‌টওয়্যার ইঞ্জিনিয়ার (software engineer) বা সফ্‌টওয়্যার ডেভেলপার(software developer)।

অপারেটিং সিস্টেম(Operating System) হল এক ধরনের বিশেষ সফ্‌টওয়্যার যে পুরো সিস্টেমের সকল কার্যাবলী নিয়ন্ত্রণ করে। এর সংক্ষিপ্ত রূপ হল OS। সিস্টেম বলতে সাধারণত কম্পিউটারকেই বোঝায়। শরীরের হার্ট যেমন সমস্ত শরীরে রক্ত সরবরাহ করে তেমনি অপারেটিং সিস্টেমও কম্পিউটারের সকল সফ্‌টওয়্যার ও হার্ডওয়্যারকে সুচাঁরু রুপে কাজ চালিয়ে যেতে ও এগুলোর মধ্যে যোগাযোগ রক্ষা করতে সাহায্য করে। এক কথায় বলা যায়, কম্পিউটার ব্যবহারকারি ও কম্পিউটার হার্ডওয়্যারের মধ্যে যোগাযোগ করার মাধ্যমই হল অপারেটিং সিস্টেম। যেমন– Linux, Mac OS, Microsoft Windows 7, প্রভৃতি। অপারেটিং সিস্টেম যে শুধু মাত্র কম্পিউটারের জন্য হবে ব্যাপারটি কিন্তু এমন নয়। মোবাইল ফোনের জন্যও অপারেটিং সিস্টেম আছে। এন্ড্রয়েড হল বর্তমান সময়ে বহুল জনপ্রিয় একটি মোবাইল অপারেটিং সিস্টেম।

কম্পাইলার ও ইন্টারপ্রেটার

প্রোগ্রামার কর্তৃক প্রোগ্রাম (যাকে বলে source code) লিখা হয়ে গেলে কম্পাইলার পুরো প্রোগ্রামটিকে এক সাথে পরীক্ষা করে দেখে কোন ভুল আছে কি না এবং যদি কোন ভুল না থাকে তাহলে প্রোগ্রামটিকে মেশিন ল্যাঙ্গুয়েজে (যাকে বলে object code বা machine code) রূপান্তরিত করে। কোন ভুল থাকলে জানিয়ে দেয় ভুল শুধরে দেয়ার জন্য। এই কাজটি কম্পাইলার করে কোন নির্দেশনা (instruction) নির্বাহ হওয়ার পূর্বেই। এই মেশিন কোডটি পরবর্তীতে কোন কম্পাইলার বা অন্য কোন ফাইলের সাহায্য ছাড়াই অপারেটিং সিস্টেম থেকে নির্বাহ হতে পারে অন্য কম্পিউটারেও।

ইন্টারপ্রেটার প্রোগ্রামকে একলাইন একলাইন করে (বা কিছু লাইনকে একসাথে) মেশিন কোডে রূপান্তরিত করে এবং সাথে সাথে কার্যনির্বাহ(execute) করে। কিন্তু কম্পাইলারের মত এক সাথে পুরো প্রোগ্রামের মেশিন কোড তৈরী করে রাখে না। তাই পরবর্তীতে প্রোগ্রাম নির্বাহ করতে চাইলে ইন্টারপ্রেটার প্রয়োজন হয়।

প্রায় সকল উচ্চস্তরের প্রোগ্রামিং ল্যাঙ্গুয়েজে কম্পাইলার এবং নিম্নস্তরের প্রোগ্রামিং ল্যাঙ্গুয়েজের জন্য ইন্টারপ্রেটার ব্যবহার করা হয়।

সি প্রোগ্রামিং ল্যাঙ্গুয়েজ পরিচিতি

সি বর্তমান সময়ের সবচেয়ে পরিচিত ও জনপ্রিয় একটি কম্পিউটার প্রোগ্রামিং ল্যাঙ্গুয়েজ। যতটুকু জানা যায়, বিজ্ঞানী Dennis Ritchie AT&T Bell Laboratory (Bell Laboratory নামে পরিচিত যার অবস্থান যুক্তরাষ্ট্রের ওয়াশিংটন ডি.সি, বিজ্ঞানী আলেকজান্ডার গ্রাহামবেল এর প্রতিষ্ঠাতা) তে ১৯৭২ সালে (কেউ কেউ ধারণা করেন ১৯৭০ সালে। তবে এটা নিশ্চিত যে ১৯৬৯ হতে ১৯৭৩ সালের মধ্যে। ১৯৭০ সাল বলার কারণ হল, ধারণা করা হয় অধিকাংশ কাজই এই সালে সম্পন্ন হয়েছে) ইউনিক্স অপারেটিং সিস্টেম (Unix Operating System) ব্যবহার করে সি ল্যাঙ্গুয়েজ ডিভেলাপ করেন। কিন্তু মজার ব্যাপার হল, সি ব্যবহার করেই পরর্তিতে এই অপারেটিং সিস্টেম আপডেট করা হয়।

Dennis Ritchie
সি ল্যাঙ্গুয়েজের প্রতিষ্ঠাতা Dennis Ritchie

আধুনিক স্ট্রাকচার প্রোগ্রামিং ল্যাঙ্গুয়েজ এর মূলে রয়েছে ALGOL প্রোগ্রামিং ল্যাঙ্গুয়েজ। তার পর আসে BCPL। পরবর্তিতে আসে বি(B) প্রোগ্রামিং ল্যাঙ্গুয়েজ যাতে BCPL এর অনেক বৈশিষ্ট্য ছিল। আর সেই বি থেকেই জন্ম সি প্রোগ্রামিং ল্যাঙ্গুয়েজের। যেহেতু বি বর্ণের ঠিক পরেই আসে সি বর্ণ, সে জন্যই বোধ হয় এর নাম দেয়া হয়েছে সি। যাকে বলা হয় “Traditional C”.

খুব অল্প সময়ের মধ্যেই সি অনেক জনপ্রিয় প্রোগ্রামিং ল্যাঙ্গুয়েজ হিসেবে রূপ নেয়। তাই ১৯৮৩ সালে ANSI একটি কমিটি গঠন করে দেয় সি এর আদর্শ মান নির্ধারণের জন্য। উক্ত কমিটি ১৯৮৯ সালের ডিসেম্বর মাসে সি ল্যাঙ্গুয়েজ এর জন্য আদর্শ মান ঠিক করে দেয়। যাকে বলা হয় ANSI C, Standard C, অথবা “C89”। আর একেই আমরা “Programming Language C” হিসেবে জানি।

১৯৯০ সালে ANSI C standard কে কিছুটা পরিবর্তন করে ISO এর আদলে নিয়ে আসা হয়। যাকে বলা হয় “C90”। তবে C89 ও C90 প্রায় একই।

১৯৯৯ সালে C Standard এ কিছু নতুন বৈশিষ্ট্য যুক্ত করে সি এর নতুন সংশোধনি নিয়ে আসা হয় যাকে বলা হয় “C99”। যেখানে পূর্বের চেয়ে বেশি কিছু কাজ করা যায়। এমনকি এটি সি প্লাস প্লাস এর কিছু বৈশিষ্ট্যও ধারণ করে, যার ফলে সি ও সি প্লাস প্লাস দিয়ে একই সাথে কাজ করা যায়। নিচের ১.১ নং চিত্রে সি এর ইতিহাস দেখানো হয়েছে।

সি ল্যাঙ্গুয়েজের ইতিহাস
সি ল্যাঙ্গুয়েজের ইতিহাস

সর্বশেষ ২০১১ সালে সি এর আরেকটি নতুন সংশোধনী প্রকাশিত হয়, যার জন্য কাজ শুরু করা হয়েছিল ২০০৭ সাল থেকে। যাকে বলা হয় “C1X”। কিন্তু এখনো এই সংশোধনির নতুন বৈশিষ্ট্যগুলো কার্য সম্পাদনের জন্য পুরোপুরি পরিক্ষীত হয়নি।