সি++

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে
C++
সি++
C plus plus.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) ১৯৭৯ সালে 'সি' নিয়ে গবেষণা শুরু করেন। পি.এইচ.ডি ডিগ্রী অর্জনের জন্য গবেষণা করতে গিয়ে তিনি নতুন প্রোগ্রামিং ভাষা তৈরি করার কথা ভাবেন। স্ট্রাউসট্রপ খেয়াল করেন যে, বড় পরিসরের সফটওয়্যার উন্নয়নে সিমুলা প্রোগ্রামিং ভাষা বেশ কার্যকরী। কিন্তু ভাষাটি অনুশীলনের ক্ষেত্রে বেশ ধীর গতির, আবার বিসিপিএল বেশ দ্রুত কিন্তু বড় পরিসরের সফটওয়্যার উন্নয়নের জন্য তেমন শক্তিশালী নয়। বিয়ার্নে স্ট্রোভ্‌স্ট্রুপ যখন AT&T Bell Labs এ কাজ শুরু করেন তখন ইউনিক্স কার্নেল নিয়ে গবেষণা করতে গিয়ে বেশ সমস্যার সম্মুখীন হন। তিনি 'সি' প্রোগ্রামিং ভাষায় সিমুলা এর সুবিধা গুলো অন্তর্ভুক্ত করার কাজে নিয়োজিত হন। এ কাজে 'সি' প্রোগ্রামিং ভাষাকে নির্বাচন করা হয় কারণ এটি সহজ, দ্রুততর, সহজে বহনযোগ্য এবং এর ব্যবহার ব্যাপক। সি এবং সিমুলা ছাড়াও তিনি আরো কিছু প্রোগ্রামিং ভাষা নিয়ে গবেষনা করেন যেমন: আলগোল ৬৮, অ্যাডা, সিএলইউ এবং এমএল

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

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

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

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

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

# include <iostream> //Header file
 
int main() //main function
{
   std::cout << "Hello, world!\n"; //print statement with new line operator
}

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

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

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

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

  1. ১.০ ১.১ Stroustrup, Bjarne (1997)। "1"। The C++ Programming Language (Third সংস্করণ)। আইএসবিএন 0-201-88954-4ওসিএলসি 59193992 
  2. Naugler, David (May 2007)। "C# 2.0 for C++ and Java programmer: conference workshop"। Journal of Computing Sciences in Colleges 22 (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" 

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

সি++ সম্পর্কে আরও তথ্য পেতে হলে উইকিপিডিয়ার সহপ্রকল্পগুলোতে অনুসন্ধান করে দেখতে পারেন:

Wiktionary-logo-en.svg সংজ্ঞা, উইকিঅভিধান হতে
Wikibooks-logo.svg পাঠ্যবই, উইকিবই হতে
Wikiquote-logo.svg উক্তি, উইকিউক্তি হতে
Wikisource-logo.svg রচনা সংকলন, উইকিউৎস হতে
Commons-logo.svg ছবি ও অন্যান্য মিডিয়া, কমন্স হতে
Wikivoyage-Logo-v3-icon.svg ভ্রমণ নির্দেশিকা, উইকিভয়েজ হতে
Wikinews-logo.png সংবাদ, উইকিসংবাদ হতে

Wikibooks
উইকিবই প্রকল্পে নিম্নের বিষয়ের উপরে সহায়িকা, বই, বা তথ্য রয়েছে:

টেমপ্লেট:CProLang