সি প্রোগ্রামিং/কেন সি শিখবেন? সি প্রোগ্রাম কেন শিখব? সি প্রোগ্রামিং বেসিক
সি প্রোগ্রামিং হল একটি শক্তিশালী, দক্ষ এবং বহুমুখী প্রোগ্রামিং ভাষা যা ১৯৭০-এর দশকে ডেনিস রিচি আবিষ্কার করেছিলেন এবং আধুনিক প্রোগ্রামিংয়ের ভিত্তি হিসেবে কাজ করে। এটি অপারেটিং সিস্টেম (উইন্ডোজ, লিনাক্স), ডিভাইস ড্রাইভার এবং এমবেডেড সিস্টেম তৈরির জন্য আদর্শ।
সি প্রোগ্রাম কেন শিখব
কেন সি শিখবেন: এটি মৌলিক প্রোগ্রামিং ধারণাগুলি (মেমরি ম্যানেজমেন্ট, পয়েন্টার) স্পষ্ট করে, আপনাকে দ্রুত কোড লিখতে সাহায্য করে এবং সি++, জাভা এবং পাইথনের মতো অন্যান্য ভাষার জন্য একটি শক্তিশালী ভিত্তি প্রদান করে।
সি প্রোগ্রামিং শেখার প্রধান কারণসমূহ:
প্রোগ্রামিংয়ের ভিত্তি (Foundation for Programming): সি হল প্রোগ্রামিং জগতের "মাতৃভাষা"। এটি শেখার ফলে কম্পিউটারগুলি মেমরি এবং হার্ডওয়্যারের সাথে কীভাবে ইন্টারঅ্যাক্ট করে (পয়েন্টার, মেমরি ম্যানেজমেন্ট) তা বোঝা সহজ হয়।
দক্ষ এবং দ্রুত (Efficient and Fast): সি ভাষা খুব দ্রুত কোড তৈরি করে, যা কর্মক্ষমতা-সমালোচনামূলক অ্যাপ্লিকেশনের জন্য উপযুক্ত।
সিস্টেম প্রোগ্রামিং (System Programming): অপারেটিং সিস্টেম (লিনাক্স, উইন্ডোজ), ডিভাইস ড্রাইভার এবং এমবেডেড সিস্টেম তৈরির জন্য এটি অপরিহার্য।
পোর্টেবিলিটি (Portability): সি তে লেখা কোডটি বিভিন্ন প্ল্যাটফর্মে সামান্য বা কোনও পরিবর্তন ছাড়াই চালানো যেতে পারে।
অন্যান্য ভাষা শেখা সহজ হয় (Easy to Learn Others): সি, সি++, জাভা, সি#, এবং পাইথনের মতো জনপ্রিয় ভাষার বাক্য গঠন সি-এর উপর ভিত্তি করে তৈরি। অতএব, সি জানা থাকলে অন্যান্য ভাষা শেখা অনেক সহজ হয়ে যায়।
ক্যারিয়ারের সুযোগ (Career Opportunities): এমবেডেড সিস্টেম, গেম ডেভেলপমেন্ট এবং সিস্টেম-লেভেল প্রোগ্রামিংয়ে সি-এর চাহিদা বেশি।
কম্পিউটার কীভাবে কাজ করে তা বোঝা: সি ভাষা আপনাকে হার্ডওয়্যারের কাছাকাছি কাজ করার অভিজ্ঞতা দেয়, যা উচ্চ-স্তরের ভাষাগুলিতে পাওয়া যায় না।
সহজ কথায়, একজন শক্তিশালী এবং দক্ষ প্রোগ্রামার হওয়ার জন্য সি প্রোগ্রামিং শেখা অপরিহার্য।
সি প্রোগ্রামিং
অপারেটিং সিস্টেম লেখার জন্য সি হল সর্বাধিক ব্যবহৃত প্রোগ্রামিং ভাষা। ইউনিক্স ছিল সি-তে লেখা প্রথম অপারেটিং সিস্টেম। মাইক্রোসফ্ট উইন্ডোজ, ম্যাক ওএস এক্স এবং জিএনইউ/লিনাক্স সবই সি প্রোগ্রামিং ভাষায় লেখা। সি কেবল একটি অপারেটিং সিস্টেম ভাষা নয়, বরং আজকের প্রায় সমস্ত জনপ্রিয় প্রোগ্রামিং ভাষার অনুপ্রেরণাও। আসলে, পার্ল, পিএইচপি, পাইথন এবং রুবির মতো অনেক প্রোগ্রামিং ভাষা সি ব্যবহার করে লেখা হয়।
ধরুন আপনি স্প্যানিশ, ইতালিয়ান, ফরাসি বা পর্তুগিজ শিখতে চান। এই ভাষাগুলি শেখার আগে যদি আপনি ল্যাটিন ভাষা শিখেন, তাহলে আপনার জন্য সবগুলো বোঝা সহজ হবে, কারণ এই ভাষাগুলি ল্যাটিন থেকে উদ্ভূত। C শেখা আপনাকে C থেকে উদ্ভূত প্রোগ্রামিং ভাষার পুরো পরিবারটি সহজেই বুঝতে সাহায্য করবে। C প্রোগ্রামিং সম্পর্কে জ্ঞান আপনাকে প্রোগ্রাম করার স্বাধীনতা দেবে।
সি কেন এসেম্বলি ভাষা নয়?
অ্যাসেম্বলি ভাষা, যদিও এটি আপনাকে গতি এবং সিস্টেমের উপর সর্বাধিক নিয়ন্ত্রণ দেয়, এটি একটি সর্বজনীন ভাষা নয়। কিন্তু ঠিক যেমন C আপনাকে সিস্টেমের উপর অনেক নিয়ন্ত্রণ দেয়, এটি একটি সর্বজনীন ভাষা।
বিভিন্ন প্রসেসর বিভিন্ন অ্যাসেম্বলি ভাষা চালায়, তাই একটি বেছে নেওয়া এবং সেই প্রসেসরের জন্য শুধুমাত্র সঠিক অ্যাসেম্বলি ভাষা শেখা ভুল। প্রকৃতপক্ষে, C এর মূল শক্তি এর সার্বজনীনতা এবং বিভিন্ন আর্কিটেকচার সহ কম্পিউটারে এটি ব্যবহার করার ক্ষমতার মধ্যে রয়েছে, একই সাথে অ্যাসেম্বলি ভাষার উপর সর্বাধিক নিয়ন্ত্রণ বজায় রাখা।
উদাহরণস্বরূপ, আপনি HP 50g ক্যালকুলেটর (ARM প্রসেসর), TI-89 ক্যালকুলেটর (68000 প্রসেসর), Palm OS Cobalt স্মার্টফোন (ARM প্রসেসর), iMac (PowerPC), Arduino (Atmel AVR), এবং Intel iMac (Intel Core 2 Duo) তে C প্রোগ্রাম কম্পাইল এবং চালাতে পারেন। এই ডিভাইসগুলির প্রতিটিরই আলাদা অ্যাসেম্বলি ভাষা রয়েছে এবং এগুলির কোনওটিই অন্যটির সাথে সামঞ্জস্যপূর্ণ নয়।
যদিও অ্যাসেম্বলি ভাষা খুব শক্তিশালী, ব্যাপক ব্যবহারের জন্য প্রোগ্রাম লেখা খুব কঠিন। এটি পড়া বা লজিক্যাল ভাষায় উপস্থাপন করাও খুব কঠিন। C হল একটি কম্পাইল করা ভাষা যা দ্রুত এবং দক্ষ এক্সিকিউটেবল (.exe) ফাইল তৈরি করে। এটি একটি ছোট, "আপনি যা দেখেন তাই আপনি পান" ভাষা। প্রতিটি C স্টেটমেন্ট আসলে বেশ কয়েকটি অ্যাসেম্বলি স্টেটমেন্ট উপস্থাপন করে এবং বাকিগুলি লাইব্রেরি ফাংশন দ্বারা সরবরাহ করা হয়।
C প্রোগ্রামিং ভাষার বিশাল জনপ্রিয়তা কি আপনাকে অবাক করে?
যেমন একটি সিঁড়ির উপরের অংশ নীচে তৈরি হয়, তেমনি একটি প্রোগ্রামিং ভাষার পরবর্তী প্রজন্ম পূর্ববর্তী প্রজন্মের উপর তৈরি হয়। C তে ডিজাইন করা অপারেটিং সিস্টেমগুলিতে প্রায়শই C তে ডিজাইন করা সিস্টেম লাইব্রেরি থাকে। এই সিস্টেম লাইব্রেরিগুলি উচ্চ-স্তরের লাইব্রেরি (যেমন OpenGL বা GTK) ডিজাইন করতে ব্যবহৃত হয় এবং এই উচ্চ-স্তরের লাইব্রেরির ডিজাইনাররা সাধারণত একই প্রোগ্রামিং ভাষা ব্যবহার করেন যেখানে সিস্টেম লাইব্রেরিগুলি লেখা হয়।
অ্যাপ্লিকেশন ডেভেলপাররা গেম, ওয়ার্ড প্রসেসর, মিডিয়া প্লেয়ার এবং আরও অনেক কিছু তৈরি করতে উচ্চ-স্তরের লাইব্রেরি ব্যবহার করেন। তাদের অনেকেই উচ্চ-স্তরের লাইব্রেরিগুলি যে প্রোগ্রামিং ভাষায় লেখা হয় তা ব্যবহার করতে পছন্দ করেন। এই কারণেই C জনপ্রিয়তা বৃদ্ধি পাচ্ছে।
কেন প্রথমে সি শিখবেন, অন্য কোনও উচ্চ-স্তরের প্রোগ্রামিং ভাষা নয়?
সি ভাষার প্রাথমিক লক্ষ্য হল ন্যূনতম পদচিহ্ন (প্রক্রিয়াকরণ সময়, মেমোরি, ডিস্ক, ইত্যাদি) এবং সর্বাধিক কর্মক্ষমতা সহ পোর্টেবল কোড লেখা। এটি মনে রাখা গুরুত্বপূর্ণ যে উচ্চ-স্তরের ভাষাগুলি অপারেটিং সিস্টেম বা অন্যান্য প্রোগ্রামের তুলনায় উল্লেখযোগ্য কর্মক্ষমতা লাভ নাও দিতে পারে।
সি একটি পরিণত ভাষা যা দীর্ঘদিন ধরে ব্যবহৃত হয়ে আসছে এবং প্রায় সমস্ত প্ল্যাটফর্মে পোর্ট করা হয়েছে। সি প্রোগ্রামিং ভাষা ব্যবহারের একটি কারণ হল এর মেমোরি ব্যবস্থাপনা, কারণ এটি প্রোগ্রামারদের সরাসরি মেমোরি ঠিকানায় লিখতে দেয়। কাঠামো, পয়েন্টার এবং অ্যারের মতো মৌলিক গঠনগুলি মেশিনে মেমোরি অ্যাক্সেসযোগ্য করার জন্য ডিজাইন করা হয়েছে।
সি প্রোগ্রামিং ইতিহাস
১৯৭০-এর দশকে বেল ল্যাবসে কাজ করার সময় ডেনিস রিচি সি তৈরি করেছিলেন। ভাষাটি প্রথমে ইউনিক্স অপারেটিং সিস্টেমের জন্য কোড লেখার জন্য ব্যবহৃত হত, কিন্তু শীঘ্রই এটি একটি বহুল ব্যবহৃত ভাষা হয়ে ওঠে। সি++ এবং জাভা সহ তৎকালীন অনেক প্রোগ্রামিং ভাষার উপর এর গভীর প্রভাব ছিল।
সি এর সবচেয়ে বড় সুবিধা হল এর পোর্টেবিলিটি। C তে লেখা প্রোগ্রাম যেকোনো অপারেটিং সিস্টেম সহ কম্পিউটারে চালানো যেতে পারে। ১৯৭০ এবং ১৯৮০ এর দশকে C জনপ্রিয়তা অর্জনের সাথে সাথে, বেশ কয়েকটি সংস্করণ তৈরি করা হয়েছিল। ১৯৮৩ সালে, আমেরিকান স্ট্যান্ডার্ডস অর্গানাইজেশন C এর জন্য একটি স্ট্যান্ডার্ড তৈরি করার জন্য একটি কমিটি গঠন করে। ছয় বছর পরে, ১৯৮৯ সালে, স্ট্যান্ডার্ড সি ভাষা তৈরি করা হয়, যা আমেরিকান স্ট্যান্ডার্ডস অর্গানাইজেশন C (ANSI C) নামে পরিচিত।
পরবর্তীতে, আন্তর্জাতিক স্ট্যান্ডার্ডস অর্গানাইজেশন ১৯৯০ সালে C এর আরেকটি স্ট্যান্ডার্ড সংস্করণ গ্রহণ করে, যা C90 নামে পরিচিত। "C89" এবং "C90" মূলত একই ভাষা। সময়ের সাথে সাথে, আন্তর্জাতিক স্ট্যান্ডার্ডস অর্গানাইজেশন ১৯৯৫ সালে এই সংস্করণটি সম্প্রসারিত করে এবং পরে ১৯৯৯ সালে সম্পূর্ণ নতুন সংস্করণ, C99 প্রকাশ করে। C প্রোগ্রামিং ভাষার সর্বশেষ সংস্করণ, C11, ২০১১ সালে প্রকাশিত হয়।
সি এর উৎপত্তি
১৯৬০ এর দশকে অনেক কম্পিউটার প্রোগ্রামিং ভাষা তৈরি করা হয়েছিল। আমেরিকান কম্পিউটার বিজ্ঞানী গ্রেস হপার তিনটি প্রোগ্রামিং ভাষা তৈরি করেছিলেন: ম্যাথমেটিকা, ফ্লোম্যাটিক এবং A2। এরপর জেমস ব্যাকাস FORTRAN তৈরি করেন। ALGOL, COBOL এবং Ada এর মতো প্রোগ্রামিং ভাষা তৈরি করা হয়। এই ভাষাগুলি মূলত আধুনিক প্রোগ্রামিং ভাষার সূচনা, তবে এগুলি বিভিন্ন উদ্দেশ্যে ব্যবহৃত হত।
তাই কম্পিউটার বিজ্ঞানীরা এমন একটি প্রোগ্রামিং ভাষা সম্পর্কে চিন্তাভাবনা শুরু করেন যা সকল ধরণের সফ্টওয়্যার তৈরি করা সম্ভব করবে। ফলস্বরূপ, বিজ্ঞানীরা ALGOL 60 (একটি অ্যালগরিদমিক ভাষা) এবং তারপরে সম্মিলিত প্রোগ্রামিং ভাষা (CPL) তৈরি করেন। তবে, CPL শেখা এবং ব্যবহার করা কঠিন ছিল, এবং তাই জনপ্রিয় হয়ে ওঠেনি।
কেমব্রিজ বিশ্ববিদ্যালয়ের মার্টিন রিচার্ড 1967 সালে CPL এর উপর ভিত্তি করে বেসিক সম্মিলিত প্রোগ্রামিং ভাষা (BCPL) তৈরি করেন। তবে, এটি মূলত একটি টাইপলেস প্রোগ্রামিং ভাষা ছিল এবং SPEC ভাষার চেয়ে কম শক্তিশালী ছিল।
একই সময়ে, বিজ্ঞানী থমসন মার্কিন যুক্তরাষ্ট্রের বেল ল্যাবরেটরিজে B নামে একটি প্রোগ্রামিং ভাষা তৈরি করেন; এটি ছিল পূর্ববর্তী BCPL এর একটি উন্নত সংস্করণ। ডেনিস রিচি পরে B এবং BCPL একত্রিত করেন এবং তাদের কিছু কৌশল ব্যবহার করে C তৈরি করেন। B এর ত্রুটিগুলি দূর করার জন্য C ডিজাইন করা হয়েছিল।

0 Comments