C

সি প্রোগ্রামিং

সি প্রোগ্রামিং (C Programming) কে আমরা প্রোগ্রাম জগতে সবার উপরে রাখতে পারি, এই প্রোগ্রাম টি সব ধরনের কাজে ব্যাবহার করতে পারি এবং এটি একদিকে যেমন হায় লেভেল প্রোগ্রাম হিসেবে কাজ করে আবার লো-লেভেলেও কাজ করতে পারে।

সি প্রোগ্রামিংটি ইউনিক্স অপারেটিং সিস্টেমটি বিকাশের জন্য বেল টেলিফোন ল্যাবরেটরিজে ডেনিস এম রিচি ১৯৭২ সালে বিকাশকরে কিন্তু অচিরেই এটি একটি বহুল ব্যবহৃত ভাষায় পরিণত হয়। সি হ’ল বহুল ব্যবহৃত কম্পিউটার ভাষা। এটি জাভা প্রোগ্রামিং ভাষার পাশাপাশি একই ভাবে জনপ্রিয়তা রয়েছে। যা আধুনিক সফ্টওয়্যার প্রোগ্রামারদের মধ্যেও সমানভাবে জনপ্রিয় এবং বহুল ব্যবহৃত।

উৎপত্তি

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

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

১৯৬০-এর দশকে বেশ কিছু কম্পিউটার প্রোগ্রামিং ভাষা তৈরি করা হয়েছিল। মার্কিন কম্পিউটারবিদ গ্রেস হপার Mathematic, Flowmatic এবং A2 নামে তিনটি প্রোগ্রামিং ভাষা উদ্ভাবন করেন। এরপর জেম্‌স ব্যাকাস তৈরি করেন ForTran। তারও পরে ALGOL, COBOL, Ada ইত্যাদি প্রোগ্রামিং ভাষা উদ্ভাবন হয়।

মূলত এই ভাষাগুলিই আধুনিক প্রোগ্রামিং ভাষাগুলির পূর্বসূরী। কিন্তু ঐ ভাষাগুলিকে ভিন্ন ভিন্ন কাজে ব্যবহার করা হত। তাই কম্পিউটার বিজ্ঞানীরা এমন একটি প্রোগ্রামিং ভাষার তৈরি করতে চাই যার মাধ্যমে সব ধরনের সফটওয়্যার তৈরি করা সম্ভব হবে।

এরই ফলশ্রুতিতে বিজ্ঞানীরা তৈরি করেন Algorithmic Language এবং এরপর Combined Programming Language (CPL), কিন্তু CPL শেখা এবং ব্যবহার করা ছিল বেশ কঠিন। তাই এটা জনপ্রিয়তা পায়নি।

ক্যামব্রিজ বিশ্ববিদ্যালয় এর মার্টিন রিচার্ড CPL কে ভিত্তি করে ১৯৬৭ সালে তৈরি করেন Basic Combined Programming Language (BCPL) কিন্তু এটি ছিল মূলত Less Powerful to Specific এবং টাইপবিহীন একটি প্রোগ্রামিং ভাষা।

এ সময়েই যুক্তরাষ্ট্রের বেল গবেষণাগারে বিজ্ঞানী টমসন তৈরি করেন বি (B) নামক একটি প্রোগ্রামিং ভাষা; এটি ছিল পূর্বের BCPL-এর একটি উন্নত সংস্করণ। ডেনিস রিচি পরবর্তীতে B এবং BCPL অনুসরণ করেন এবং নিজে থেকে আরো কিছু কৌশল ব্যবহার করে তৈরি করেন “সি” (C)। মূলত B-এর যে সকল সীমাবদ্ধতা ছিলো তা দূর করার উদ্দেশ্যেই “সি” এর উৎপত্তি।

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

 সি প্রোগ্রামিং ল্যাঙ্গুয়েজের কয়েকটি গুরুত্ত্বপূর্ণ টপিক্স হচ্ছে অপারেটর, স্ট্রিং এবং ক্যারেকটার, কন্ট্রোল ফ্লো, লুপিং, ফাংশন, অ্যারে ইত্যাদি। এ অল্প কয়েকটি টপিক্স সব গুলো ল্যাঙ্গুয়েজ এর ভিত্তি। একটা ল্যাঙ্গুয়েজ এর গুলো ভালো করে জানা থাকলে বাকি ল্যাঙ্গুয়েজ গুলোর জন্যও জানা সহজ হয়ে যায়।

আমরা সি প্রোগ্রামিং ল্যাঙ্গুয়েজ কেন শিখবো

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

সি প্রোগ্রামিং শেখার কয়েকটি মূল সুবিধাগুলো  নীচে উল্লেখ করলাম:

  1. সহজে শেখা সম্ভব
  2. কাঠমগত ভাষা (Structured language)
  3. এটি দক্ষ প্রোগ্রাম তৈরি করে
  4. এটি নিম্ন-স্তরের ক্রিয়াকলাপ পরিচালনা করতে পারে
  5. এটি বিভিন্ন ধরন কম্পিউটার প্ল্যাটফর্মে কাজ করতে পারে।

এখানে একটা সি প্রোগ্রামিং এর ধরণা দেওয়া হলো

#include <stdio.h>

int main() {

      printf(“Hello, World! \n”);

   return 0;

}

সিনট্যাক্স কীওয়ার্ড

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

সি প্রোগ্রামিং ভাষায় কীওয়ার্ড বলতে বোঝায় সেইসব সংরক্ষিত শব্দসমূহকে যেগুলো একটি বিশেষ অর্থ প্রকাশ করে। সি প্রোগ্রামিং এ এরকম ৩২টি কীওয়ার্ড আছে।

auto break case char const continue default dodouble else enum extern float for goto ifint long register return short signed sizeof staticstruct switch typedef union unsigned void volatile while

এছারা আরো ১২ টি বিশেষ ধরনের কীওয়ার্ড ব্যাববহার করা হয়ে থাকে

Bool Complex Thread_local _GenericImaginary Inline Atomic AlignofRestrict Alignas Noreturn Static_assert

অপারেটর

অপারেটর এক ধরণের প্রতীক(symbol) যা ভ্যালু(value) অথবা ভ্যারিয়েবলকে অপারেট করতে পারে।

সি এর অপারেটরগুলো হল –

অ্যারিথমেটিক: +*, /, %

অ্যাসাইনমেন্ট: =

অগমেন্টেড অ্যাসাইনমেন্ট: +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=

বিটওয়াইজ লজিক: ~, &, |, ^

বিটওয়াইজ শিফট্‌: <<, >>

বুলিয়ান লজিক: !, &&, ||

কন্ডিশনাল ইভালুয়েশন: ? :

ইকুয়ালিটি টেস্টিং: ==, !=

কলিং ফাংশন: ( )

ইনক্রিমেন্ট ও ডিক্রিমেন্ট অপারেটর: ++, —

মেম্বার সিলেকশন: ., ->

অবজেক্ট সাইজ: sizeof

অর্ডার রিলেশন: <, <=, >, >=

রেফারেন্স ও ডিরেফারেন্স: &, *, [ ]

সিকুয়েন্সিং: ,

সাবএক্সপ্রেসন গ্রুপিং: ( )

টাইপ কনভার্সন: (typename)

আপনাদের যদি আরো কিছু জানার দরকার হয় নিচে কমেন্স এ জানাবেন।

One Comment

Leave a Reply

Your email address will not be published. Required fields are marked *