সি++

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে
(C++ থেকে পুনর্নির্দেশিত)
Jump to navigation Jump to search
সি++
ISO C++ Logo.svg
প্যারাডাইমমাল্টি-প্যারাডাইম:[১] প্রসিডিউরাল, ফাংশনাল, অবজেক্ট ওরিয়েন্টেড, মৌলিক
আবির্ভাব১৯৮৩
ডিজাইন করেছেনবিয়ারনে স্ট্রোভস্ট্রুপ
ডেভেলপার
  • বিয়ার্নে স্ট্রাউসট্রপ
  • Bell Labs
  • ISO/IEC JTC1/SC22/WG21


টাইপিং ডিসিপ্লিনStatic, unsafe, nominative
প্রধান বাস্তবায়নক্ল্যাং, জিসিসি, মাইক্রোসফট ভিজুয়্যাল সি++, বোরল্যান্ড সি++ টেমপ্লেট:Nowraplinks
ডায়ালেক্টটেমপ্লেট:Nowraplinks
যার দ্বারা প্রভাবিতC, Simula, Ada 83, ALGOL 68, CLU, ML[১]
যাকে প্রভাবিত করেছেPerl, LPC, Lua, Pike, Ada 95, Java, PHP, D, C99, C#,[২] Falcon, Seed7
ওএসক্রস-প্ল্যাটফর্ম (বহু প্ল্যাটফর্ম)
ওয়েবসাইটNews, status & discussion about Standard C++

সি++ (উচ্চারণ: সি প্লাস প্লাস) একটি অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ভাষা। ১৯৮০ সালে বিয়ারনে স্ট্রোভস্ট্রুপ (Bjarne Stroustrup) যুক্তরাষ্ট্রের এটিএন্ডটি বেল ল্যাবরেটরিতে (AT&T Bell Laboratory) এটি ডেভেলপ করেন। মূলত সিমুলা৬৭ এবং সি প্রোগ্রামিং ভাষার সুবিধাজনক বৈশিষ্ট্যগুলোর সমন্বয় সাধন করে সি++ তৈরি হয়।

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

সি এর সাথে এখানে যা সংযুক্ত করা হয়েছে তার মধ্যে উল্লেখযোগ্য কিছু হল- প্রথমে শ্রেণী (classes), পরবর্তীতে ভার্চুয়াল ফাংশন, অপারেটর ওভারলোডিং, মাল্টিপল ইনহেরিটেন্স, টেমপ্লেটস, ব্যতিক্রম গ্রহণ করার ক্ষমতা (exception handling), পলিমরফিজম ইত্যাদি।

ইতিহাস[সম্পাদনা]

বিয়ারনে স্ট্রোভস্ট্রুপ

বিয়ারনে স্ট্রোভস্ট্রুপ (Bjarne Stroustrup) ১৯৭৯ সালে 'সি' নিয়ে গবেষণা শুরু করেন। পি.এইচ.ডি ডিগ্রী অর্জনের জন্য গবেষণা করতে গিয়ে তিনি নতুন প্রোগ্রামিং ভাষা তৈরি করার কথা ভাবেন। স্ট্রোভস্ট্রুপ খেয়াল করেন যে, বড় পরিসরের সফটওয়্যার উন্নয়নে সিমুলা প্রোগ্রামিং ভাষা বেশ কার্যকরী। কিন্তু ভাষাটি অনুশীলনের ক্ষেত্রে বেশ ধীর গতির, আবার বিসিপিএল বেশ দ্রুত কিন্তু বড় পরিসরের সফটওয়্যার উন্নয়নের জন্য তেমন শক্তিশালী নয়। বিয়ারনে স্ট্রোভস্ট্রুপ যখন এটিএন্ডটি বেল ল্যাবরেটরিতে এ কাজ শুরু করেন তখন ইউনিক্স কার্নেল নিয়ে গবেষণা করতে গিয়ে বেশ সমস্যার সম্মুখীন হন। তিনি 'সি' প্রোগ্রামিং ভাষায় সিমুলা এর সুবিধা গুলো অন্তর্ভুক্ত করার কাজে নিয়োজিত হন। এ কাজে 'সি' প্রোগ্রামিং ভাষাকে নির্বাচন করা হয় কারণ এটি সহজ, দ্রুততর, সহজে বহনযোগ্য এবং এর ব্যবহার ব্যাপক। সি এবং সিমুলা ছাড়াও তিনি আরো কিছু প্রোগ্রামিং ভাষা নিয়ে গবেষনা করেন যেমন: আলগোল ৬৮, অ্যাডা, সিএলইউ এবং এমএল

প্রমিতকরণ[সম্পাদনা]

সাল সি++ স্ট্যান্ডার্ড অনানুষ্ঠানিক নাম
১৯৯৮ আইএসও/আইইসি ১৪৮৮২:১৯৯৮[৩] সি++৯৮
২০০৩ আইএসও/আইইসি ১৪৮৮২:২০০৩[৪] সি++০৩
২০০৭ আইএসও/আইইসি টিআর ১৯৭৬৮:২০০৭[৫] সি++টিআর১
২০১১ আইএসও/আইইসি ১৪৮৮২:২০০৩[৬] সি++১১
২০১৪ এন৩৬৯০ (ওয়ার্কিং ড্রাফট সি++১৪)[৭] সি++১৪
২০১৭ ঘোষিত হবে সি++১৭

নামকরণ:[সম্পাদনা]

সি++ নামটি এসেছে সি নামক প্রোগ্রামিং ভাষা থেকে। সি ভাষাতে পর পর দুটি যোগ চিহ্ন ব্যবহার করার অর্থ হলো কোন কিছুর মান এক বাড়ানো। অনেকটা সেই অর্থেই সি প্রোগ্রামিং-এর এক ধাপ উপরের একটি প্রোগ্রামিং ভাষা হিসেবে সি++ নামকরণটি এসেছে। তবে সি এবং সি++ এর প্রোগ্রাম কোডে অনেকটা পার্থক্য বিদ্যমান।

ভাষা[সম্পাদনা]

#include <iostream>    // Header File where C++ basic input output files are written
using namespace std;   // standard namespace
int main() {    //main function
    cout<<"Hello Fuad"<<endl; //endl ends the line
    return  0;  
}

আউটপুট : Hello Fuad

অপারেটর এবং অপারেটর ওভারলোডিং[সম্পাদনা]

যেসব অপারেটরকে ওভারলোড করা যাবে না
অপারেটর প্রতীক
স্কোপ রেজুলেশন অপারেটর
::
কন্ডিশনাল অপারেটর
?:
ডট অপারেটর বা মেম্বার সিলেকশন অপারেটর
.
পয়েন্টার মেম্বার সিলেকশন অপারেটর
.*
সাইজঅফ অপারেটর
sizeof
টাইপআইডি অপারেটর
typeid

সি++ এর ৩৫টির অধিক অপারেটর আছে যাদের মধ্যে অন্যতম হল বেসিক অ্যারিথমেটিক, বিট ম্যানিপুলেশন, ইন্‌ডিরেকশন, কম্পারিজন, লজিকাল এবং অন্যান্য অপারেটর। প্রায় সব অপারেটরকেই ইউজার ডিফাইনড টাইপ এর ওপর ভিত্তি করে ওভারলোড করা যাবে কিছু ব্যতিক্রম ছাড়া। ব্যতিক্রমগুলো পাশের টেবিলে দেওয়া আছে। মূলত অপারেটর ওভারলোডিং এসেছে যেন ইউজার ডিফাইনড ডাটা টাইপকে বিল্ট্‌ ইন ডাটা টাইপ এর মত ব্যবহার করা যায়। এছাড়া ওভারলোডিং উচ্চতর সি++ এরও অনেক জায়গায় ব্যবহৃত হয়। যেমন, স্মার্ট পয়েন্টার। অপারেটর ওভারলোডিং করলেও এর হিসাব করার অগ্রগণ্যতার পরিবর্তন ঘটে না, না পরিবর্তন ঘটে অপারেন্ড এর সংখ্যার। ওভারলোডেড"&&" এবং "||" অপারেটর তাদের সর্ট-সার্কিট মূল্যায়ন ধর্ম হারিয়ে ফেলে।

তথ্যসূত্র[সম্পাদনা]

  1. Stroustrup, Bjarne (১৯৯৭)। "1"। The C++ Programming Language (Third সংস্করণ)। আইএসবিএন 0-201-88954-4ওসিএলসি 59193992 
  2. Naugler, David (২০০৭)। "C# 2.0 for C++ and Java programmer: conference workshop"। Journal of Computing Sciences in Colleges22 (5)। Although C# has been strongly influenced by Java it has also been strongly influenced by C++ and is best viewed as a descendant of both C++ and Java.  অজানা প্যারামিটার |month= উপেক্ষা করা হয়েছে (সাহায্য)
  3. "ISO/IEC 14882:1998"। International Organization for Standardization। 
  4. "ISO/IEC 14882:2003"। International Organization for Standardization। 
  5. "ISO/IEC TR 19768:2007"। International Organization for Standardization। 
  6. "ISO/IEC 14882:2011"। International Organization for Standardization। 
  7. "ISO/IEC JTC1 SC22 WG21 N3690" (PDF) 

বহিঃসংযোগ[সম্পাদনা]

টেমপ্লেট:CProLang