সি প্রোগ্রামিং ভাষা কিঃ
সি কেমন আদ্ভুদ একটা নাম। ডস ভিত্তিক যেকোন সিস্টেম সফটওয়্যার কিংবা অ্যাপলিকেশ সফটওয়্যার থেকে শুরু করে হালের উইন্ডোজ ভিত্তিক যে কোন প্রোগ্রাম লেখতে C ব্যাপকভাবে ব্যবহারিত হয়। C দিয়ে যে কোন সমস্যা সমাধান করা যায় বলে একে অনেক সময় General purpose language ও বলে।
যুক্ত্ররাষ্টের BELL Laboratoryর Dennis Ritchards ১৯৭০ সালের শেষের দিকে এই অদ্ভুদ নামের প্রোগ্রামিং ল্যাঙ্গুয়েজ ডেভেলপ করা হয়। তিনি DEC PDP – 11 মেশিনে Unix operating system – এ C ডেভেলপ করেন। এবং এর সবচেয়ে মজার ব্যাপার হচ্ছে এই Unix Operating System – ই পরিবর্তী কালে নতুন করে C দিয়ে লেখা হয়।
সি প্রোগ্রামিং এর ইতিহাসঃ
আমরা সবাই জানি যে কম্পিউটারের মাধ্যমে সমস্যা সমাধানের জন্য দক্ষ প্রোগ্রামাররা বিভিন্ন ধরনের প্রোগ্রাম তৈরি করেন। আর এসব প্রোগ্রাম লেখার জন্য বিভিন্ন ধরনের প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যবহার করা হয়। কিন্তু অনেক সময় আমাদের মনে প্রশ্ন জাগতে পারে প্রোগ্রামিং ল্যাঙ্গুয়েজ আবার কোন ল্যাগুয়েজ , যার মাধ্যমে কম্পিউটারকে নির্দেশ দেয়া হয়। এটা কি আরবী ভাষা, না ইংরেজি ভাষা ? না, এটা আরবীও নয়, ইংরেজীও নয়, কম্পিউটারকে কী- বোর্ডের মাধ্যমে তার মেশিন ল্যাঙ্গুয়েজ নির্দেশ দিতে হয়। এখন প্রশ্ন হল, মেশিন ল্যাঙ্গুয়েজ
আবার কোন ধরনের ল্যাঙ্গুয়েজ ? অন্যান্য ইলেকট্রনিক্স যন্ত্রের মতো কম্পিউটারও অসংখ্য লজিক গেট (logic gate) – এর সমন্বয়ে গঠিত। এটাও কেবলমাত্র দুটি লজিকের উপর কাজ করে – ০(শূন্য) এবং 1 (এক)। উল্লেখ্য দুটো লজিকের উপর কাজ করার পদ্ধতিকে বলা হয় বাইনারী (binary) পদ্ধতি। বাইনারী পদ্ধতিতে ব্যবহৃত 0 এবং 1 এই দুটি মৌলিক সংখ্যাকে কম্পিউটারের ভাষায় বিট (bit) বলে এবং এদেরকে ইলেকট্রনিক্স সার্কিটের দুটি ভোল্টস্তর (নেগেটিভ ও পজেটিভ) দ্বারা নির্ধারন করা যায়। আর এই ০,১ দিয়ে লেখা ভাষাকে মেশিন ভাষা বলে(Machine Language) বলে। মেশিন ল্যাঙ্গুয়েজে প্রোগ্রামে প্রোগ্রাম লেখা অত্যন্ত জটিল কাজ । কেননা এই ল্যাঙ্গুয়েজ ব্যবহার করে সামান্য কাজের জন্য প্রোগ্রাম লিখতে প্রচুর সময় লাগে। তাই মেশিন ল্যাঙ্গুয়েজে প্রোগ্রাম লেখাটা অত্যন্ত জটিল।
তাই মেশিন ল্যাঙ্গুয়েজ এর সীমা বদ্ধতা কাটানোর জন্য 0 ,1, দিয়ে না লিখে বরং mov,mul,add .sub ব্যবহার করার জন্য একটা ল্যাঙ্গুয়েজ ডেভেলপ করা হয় যাকে বলা (Assembly Language).আর এই (Assembly) তে লেখা প্রোগ্রামকে মেশিন ল্যাঙ্গুয়েজে রূপান্তর করার জন্য এক বিশেষ অনুবাদক প্রোগ্রাম বা সফটওয়্যার ব্যবহার করা হয় তাকে (Assembler)বলে। ১৯৫০ সালের পর ,অনেকে ইংরেজী ভাষার মত করে , গানিতিক সূত্রসহ,প্রোগ্রামিং ল্যাঙ্গুয়েজ ডেভেলপ করার চেষ্টা করেন।
তারপর ডঃ গ্রেস হপার ,Math-matic,Flow matic এবং A2 নামের তিনটি ল্যাঙ্গুয়েজ ডেভেলপ করে। মূলত এই ল্যাঙ্গুয়েজ বিভিন্ন হাই লেভেল ল্যাঙ্গুয়েজ এর পূর্বসূরি।এরপর IBM – এর ডঃ জেমস ব্যাকাস ১৯৫৭ সালে Fortrant নামে একটা প্রোগ্রামিং ল্যাঙ্গুয়েজ ডেভেলপ করা হয়।পরবর্তীতে ১৯৫৮ সালে Algol এবং ১৯৬০ সালে Cobol নাম আরও দুটি ল্যাঙ্গুয়েজ ডেভেলপ করা হয়। এরপর ধীরে ধীরে BASIC,ADA,PASCEL, ect ল্যাঙ্গুয়েজ ডেভেলপ করা হয়।
এ সময়েই যুক্তরাষ্ট্রের বেল গবেষণাগারে বিজ্ঞানী টমসন বি (B) নামক একটি প্রোগ্রামিং ভাষা তৈরি করেন ; এটি ছিল পূর্বের BCPL-এর একটি উন্নত সংস্করণ। ডেনিস রিচি পরবর্তীতে B এবং BCPL অনুসরণ করেন এবং নিজে থেকে আরো কিছু কৌশল ব্যবহার করে “সি”তৈরি করেন (C)। মূলত B-এর সীমাবদ্ধতা গুলো দূর করার উদ্দেশ্যেই “সি” এর উৎপত্তি।
সি প্রোগ্রামিং ভাষার জনক কেঃ
সি প্রোগ্রামিং ভাষা নির্মাণ করেন যুক্তরাষ্ট্রের ডেনিস রিচি, তিনি বেল ল্যাবে ৭০এর দশকে কাজ করার সময় এই আদ্ভুদ নামের সি প্রোগ্রামিং ভাষা তৈরি করেন। ভাষাটি তৈরির প্রথম উদ্দেশ্য ছিল ইউনিক্স- অপারেটিং সিস্টেম এর কোড লেখায় এর ব্যবহার, কিন্তু অচিরেই এটি একটি বহুল ব্যবহৃত ভাষায় পরিণত হয়।
সি প্রোগ্রামিং এর কাজ কিঃ
C প্রথমে Unix Operating System – এ ব্যবহার করা হত। Brian Kernighan ও Dennis Ritchie তাদের The C Programing Language (Englewood Cliffs,N.J : Prentice Hall, 1978 ) বইয়ে C জনপ্রিয়তা বাড়ার সাথে সাথে C এরও ব্যাপক প্রয়োগ শুরু হয়।কারন C তে এক কম্পিউটারে লেখা প্রোগ্রাম অন্য কম্পিউটারে চালানো যেত। আর তাছাড়া বিভিন্ন কাজের জন্য অন্যান্য ল্যাঙ্গুয়েজের চেয়ে C library function – এর দিক দিয়েও অত্যন্ত সমৃদ্ধ ।
সি প্রোগ্রামিং ভাষার গঠনঃ
C তে প্রোগ্রাম লিখতে হলে আমাদের যে যে প্রাথমিক গঠন সম্পর্কে তা একটি তালিকা নিচে দেওয়া হলোঃ
Variable
datatype(int, float….)
decision marking(if-else…)
looping(do,for)
function
Complex data type (array,structure,union…)
link list
FILE