সি++
এই নিবন্ধটি অসম্পূর্ণ। আপনি চাইলে এটিকে সম্প্রসারিত করে উইকিপিডিয়াকে সাহায্য করতে পারেন। |
![]() | |
প্যারাডাইম | মাল্টি-প্যারাডাইম:[১] প্রসিডিউরাল, ফাংশনাল, অবজেক্ট ওরিয়েন্টেড, মৌলিক |
---|---|
নকশাকার | বিয়ারনে স্ট্রোভস্ট্রুপ |
বিকাশকারী |
|
প্রথম প্রদর্শিত | ১৯৮৩ |
স্থিতিশীল সংস্করণ | ISO/IEC 14882:2011
/ ২০১১ |
ধরণের শৃঙ্খলা | Static, unsafe, nominative |
ওএস | ক্রস-প্ল্যাটফর্ম (বহু প্ল্যাটফর্ম) |
ফাইলনেম এক্সটেনশান | .h .hh .hpp .hxx .h++ .cc .cpp .cxx .c++ |
ওয়েবসাইট | News, status & discussion about Standard C++ |
মুখ্য বাস্তবায়নসমূহ | |
ক্ল্যাং, জিসিসি, মাইক্রোসফট ভিজুয়্যাল সি++, বোরল্যান্ড সি++ টেমপ্লেট:Nowraplinks | |
উপভাষাসমূহ | |
টেমপ্লেট:Nowraplinks | |
যার দ্বারা প্রভাবিত | |
C, Simula, Ada 83, ALGOL 68, CLU, ML[১] | |
যাকে প্রভাবিত করেছে | |
Perl, LPC, Lua, Pike, Ada 95, Java, PHP, D, C99, C#,[২] Falcon, Seed7 | |
|
সি++ (উচ্চারণ: সি প্লাস প্লাস) একটি অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ভাষা। ১৯৮০ সালে বিয়ারনে স্ট্রোভস্ট্রুপ (Bjarne Stroustrup) যুক্তরাষ্ট্রের এটিএন্ডটি বেল ল্যাবরেটরিতে (AT&T Bell Laboratory) এটি ডেভেলপ করেন। মূলত সিমুলা৬৭ এবং সি প্রোগ্রামিং ভাষার সুবিধাজনক বৈশিষ্ট্যগুলোর সমন্বয় সাধন করে সি++ তৈরি হয়।
এটি একটি মধ্যম শ্রেণীর প্রোগ্রামিং ভাষা যাতে উচ্চ শ্রেণী এবং নিম্ন শ্রেণীর ভাষাগুলোর সুবিধা সংযুক্ত আছে। এটি সর্বকালের অন্যতম জনপ্রিয় প্রোগ্রামিং ভাষা এবং সফটওয়্যার শিল্পে এটি বহুল ব্যবহৃত হয়। যেমন- সিস্টেম সফটওয়্যার, অ্যাপ্লিকেশন সফটওয়্যার, ডিভাইস ড্রাইভার, এম্বেডেড সফটওয়্যার, উচ্চ মানের সার্ভার ও ক্লায়েন্ট অ্যাপ্লিকেশন, বিনোদন সফটওয়্যার যেমন- ভিডিও গেম ইত্যাদি ক্ষেত্রে সি++ ব্যবহৃত হচ্ছে। সি++ এর বিভিন্ন মুক্ত এবং মালিকানাধীন কম্পাইলার আছে যা বিভিন্ন দল যেমন- জিএনইউ প্রকল্প, মাইক্রোসফট, ইন্টেল এবং বোরল্যান্ড সরবরাহ করে। সি++ পরবর্তী সময়ে বিভিন্ন প্রোগ্রামিং ভাষাকে প্রভাবিত করেছে যার মধ্যে সর্বাপেক্ষা উল্লেখযোগ্য হচ্ছে জাভা।
সি এর সাথে এখানে যা সংযুক্ত করা হয়েছে তার মধ্যে উল্লেখযোগ্য কিছু হল- প্রথমে শ্রেণী (classes), পরবর্তীতে ভার্চুয়াল ফাংশন, অপারেটর ওভারলোডিং, মাল্টিপল ইনহেরিটেন্স, টেমপ্লেটস, ব্যতিক্রম গ্রহণ করার ক্ষমতা (exception handling), পলিমরফিজম ইত্যাদি।
ইতিহাস[সম্পাদনা]
আশি ও নব্বইয়ের দশকে বেশিরভাগ সফটওয়্যার ডেভেলপাররা যে প্রোগ্রামিং ভাষাটা বেশি ব্যবহার করতেন, তা হলো "সি"। সি বের হবার পর থেকে এখন পর্যন্ত অ্যাপল কিংবা পিসিতে ম্যাক ওএস, ডস, উইন্ডোজ, লিনাক্স থেকে শুরু করে এসব অপারেটিং সিস্টেমে চালিত বেশিরভাগ প্রোগ্রাম লেখা হয় সি দিয়ে। সি দিয়ে যত বড় বড় প্রোগ্রাম লেখা হয়েছে, আর কোনও প্রোগ্রামিং ভাষায় তা হয়নি। Embeded সিস্টেম থেকে আরম্ভ করে অপারেটিং সিস্টেম, গ্রাফিক্স অ্যাপ্লিকেশন, ক্লায়েন্ট/সার্ভার ডেটাবেজ, থ্রিডি গেমস্, ডেটা কম্প্রেশন, নেটওয়ার্কিং, ভাইরাস, এন্টিভাইরাস সহ আরও অনেক ধরণের প্রোগ্রাম লেখা হয় সি দিয়ে। কিন্তু সি দিয়ে এতো কিছু করা গেলেও বড় প্রোগ্রাম তৈরী করতে গিয়ে কিছু সমস্যা ধরা পড়ে। যেমন কোনও প্রোগ্রাম যদি বেশি বড় মানে ১ লক্ষ লাইনের উপর হয়ে যায়, তাহলে সেই প্রোগ্রামের কিছু পরিবর্তন করতে গেলে কিংবা নতুন কিছু যোগ করতে গেলে অনাকাঙ্খিত কিছু ভুলও প্রোগ্রামে যোগ হতে পারে। কেননা সি তে প্রোগ্রাম লেখার জন্য structured কিংবা procedural programming পদ্ধতি অনুসরণ করা হয়। আর এই পদ্ধতিতে যেভাবে data abstraction করা হয়, সেক্ষেত্রে প্রোগ্রাম বড় হয়ে গেলে সব ডেটার প্রতি ঠিকমতো নজর দেয়া যায় না। ১৯৮০ সালে এটিএন্ডটি বেল ল্যাবরেটরিজ এ ইউনিক্স কার্নেল নিয়ে গবেষণা করতে গিয়ে বিয়ারনে স্ট্রোভস্ট্রুপ (Bjarne Stroustrup) এ ধরণের কিছু সমস্যার সম্মুখীন হোন। তখন তিনি নতুন একটা প্রোগ্রামিং ভাষা তৈরী করার চেষ্টা করেন। এই প্রোগ্রামিং ভাষা তৈরী করার সময় এর প্রাথমিক উপাদানগুলোর জন্য নতুন syntax তৈরী না করে সে সময়কার সবচেয়ে বেশি ব্যবহৃত ল্যাঙ্গুয়েজ সি-টাকে বেছে নেন এবং সেই সাথে আরও কিছু ল্যাঙ্গুয়েজের ভালো ফিচার তিনি এই নতুন ল্যাঙ্গুয়েজে যোগ করেন। যেমন সিমুলা থেকে নেন অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এর ধারণা, অ্যাডা'র generic এর ধারণাটা যোগ করেন template হিসেবে প্রভৃতি । আর এভাবে যে নতুন প্রোগ্রামিং ভাষা তৈরী করা হয়, শুরুতে তার নাম দেয়া হয়েছিলো "C with Classes"।
১৯৮৩ সাল পর্যন্ত নতুন এই ভাষাটা শুধুমাত্র এটিএন্ডটি বেল ল্যাবরেটরিজ এর ভেতরেই ব্যবহার করা হতো। ১৯৮৩ সালের জুলাই মাসে এটাকে প্রথম এটিএন্ডটি বেল ল্যাবরেটরিজ এর বাইরে প্রোগ্রাম তৈরী করার জন্য ব্যবহার করা হয়। এ বছরই "C with Classes" নামটা Rick Mascitti পরিবর্তন করে রাখেন সি++। এই নামকরণের পেছনে যুক্তিটা হলো এরকম, সি তে ++ হলো increment অপারেটর এবং "C with Classes" হলো সি এরই increment ভার্সন। তাই নাম দেয়া হলো সি++।
প্রমিতকরণ[সম্পাদনা]
সাল | সি++ স্ট্যান্ডার্ড | অনানুষ্ঠানিক নাম |
---|---|---|
১৯৯৮ | আইএসও/আইইসি ১৪৮৮২:১৯৯৮[৩] | সি++৯৮ |
২০০৩ | আইএসও/আইইসি ১৪৮৮২:২০০৩[৪] | সি++০৩ |
২০০৭ | আইএসও/আইইসি টিআর ১৯৭৬৮:২০০৭[৫] | সি++টিআর১ |
২০১১ | আইএসও/আইইসি ১৪৮৮২:২০০৩[৬] | সি++১১ |
২০১৪ | এন৩৬৯০ (ওয়ার্কিং ড্রাফট সি++১৪)[৭] | সি++১৪ |
২০১৭ | ঘোষিত হবে | সি++১৭ |
নামকরণ:[সম্পাদনা]
সি++ নামটি এসেছে সি নামক প্রোগ্রামিং ভাষা থেকে। সি ভাষাতে পর পর দুটি যোগ চিহ্ন ব্যবহার করার অর্থ হলো কোন কিছুর মান এক বাড়ানো। অনেকটা সেই অর্থেই সি প্রোগ্রামিং-এর এক ধাপ উপরের একটি প্রোগ্রামিং ভাষা হিসেবে সি++ নামকরণটি এসেছে। তবে সি এবং সি++ এর প্রোগ্রাম কোডে অনেকটা পার্থক্য বিদ্যমান। কেননা সি হল ফাংশন নির্ভর ভাষা এবং সি++ হল বস্তু সংশ্লিষ্ট ( অবজেক্ট অরিয়েন্টেড) ভাষা। এটি মূলত সি ভাষার বর্ধিত রুপ।
ভাষা[সম্পাদনা]
#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
|
সি++ এর ৩৫টির অধিক অপারেটর আছে যাদের মধ্যে অন্যতম হল বেসিক অ্যারিথমেটিক, বিট ম্যানিপুলেশন, ইন্ডিরেকশন, কম্পারিজন, লজিকাল এবং অন্যান্য অপারেটর। প্রায় সব অপারেটরকেই ইউজার ডিফাইনড টাইপ এর ওপর ভিত্তি করে ওভারলোড করা যাবে কিছু ব্যতিক্রম ছাড়া। ব্যতিক্রমগুলো পাশের টেবিলে দেওয়া আছে। মূলত অপারেটর ওভারলোডিং এসেছে যেন ইউজার ডিফাইনড ডাটা টাইপকে বিল্ট্ ইন ডাটা টাইপ এর মত ব্যবহার করা যায়। এছাড়া ওভারলোডিং উচ্চতর সি++ এরও অনেক জায়গায় ব্যবহৃত হয়। যেমন, স্মার্ট পয়েন্টার। অপারেটর ওভারলোডিং করলেও ওভারলোডেড অপারেটরের হিসাব করার অগ্রগণ্যতার পরিবর্তন ঘটে না, এমনকি অপারেটরটির অপারেন্ড এর সংখ্যাও অপরিবর্তনীয় থাকে। ওভারলোডেড"&&
" এবং "||
" অপারেটর তাদের সর্ট-সার্কিট মূল্যায়ন ধর্ম হারিয়ে ফেলে।
তথ্যসূত্র[সম্পাদনা]
- ↑ ক খ Stroustrup, Bjarne (১৯৯৭)। "1"। The C++ Programming Language (Third সংস্করণ)। আইএসবিএন 0-201-88954-4। ওসিএলসি 59193992।
- ↑ Naugler, David (২০০৭)। "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=
উপেক্ষা করা হয়েছে (সাহায্য) - ↑ "ISO/IEC 14882:1998"। International Organization for Standardization।
- ↑ "ISO/IEC 14882:2003"। International Organization for Standardization।
- ↑ "ISO/IEC TR 19768:2007"। International Organization for Standardization।
- ↑ "ISO/IEC 14882:2011"। International Organization for Standardization।
- ↑ "ISO/IEC JTC1 SC22 WG21 N3690" (PDF)।
বহিঃসংযোগ[সম্পাদনা]
![]() |
উইকিবইয়ে এই বিষয়ের উপরে একটি বই রয়েছে: More C++ Idioms |
- JTC1/SC22/WG21 – The ISO/IEC C++ Standard Working Group
- n3242.pdf – Final Committee Draft of "ISO/IEC IS 14882 – Programming Languages – C++" (২৮ ফেব্রুয়ারি ২০১১)
- A paper by Stroustrup showing the timeline of C++ evolution (১৯৭৯-১৯৯১)
- Bjarne Stroustrup's C++ Style and Technique FAQ
- C++ FAQ Lite by Marshall Cline
- C++ FQA Lite – Yossi Kreinin
- Hamilton, Naomi (২৫ জুন ২০০৮)। "The A-Z of Programming Languages: C++"। Computerworld। Interview with Bjarne Stroustrup.
- Kalev, Danny (১৫ আগস্ট ২০০৮)। "The State of the Language: An Interview with Bjarne Stroustrup"। DevX। QuinStreet Inc.।
- Katdare, Kaustubh (১ ফেব্রুয়ারি ২০০৮)। "Dr. Bjarne Stroustrup – Inventor of C++"। CrazyEngineers।
- Code practices for not breaking binary compatibility between releases of C++ libraries (from KDE Techbase)
- The Standard C++ Foundation is a non-profit organization that promotes the use and understanding of standard C++. Bjarne Stroustrup is a director of the organization.
এই নিবন্ধটি অসম্পূর্ণ। আপনি চাইলে এটিকে সম্প্রসারিত করে উইকিপিডিয়াকে সাহায্য করতে পারেন। |