خلاصه تعریفی از زبان برنامه نویسی سیپلاسپلاس (C++)
با توجه به پیشرفت و توسعهی زبانهای برنامهنویسی، به ویژه ظهور زبانهای جدید که جهت حل مشکلات زبانهای موجود و یا با هدف ایجاد انقلاب و یا سهولت برنامهنویسی، یکی از سوألاتی که مدام به ذهن میآید این است که چه زبانی را باید انتخاب کرد که از لحاظ بُعد علمی، اقتصادی و فنی بهترین انتخاب باشد تا با یک خیال راحت به یادگیری آن بپردازیم.
در این مقاله به مزایای این زبان نسبت به دیگر زبانها و همچنین چشماندازی از آیندهی زبان اشاره شده است؛ سیپلاسپلاس به عنوان قدرتمندترین زبان برنامهنویسی تا به کنون است که به جرأت میتوان گفت به عنوان یک زبان برنامهنویسیِ غالب بر دیگر زبانهای برنامهنویسی لقب «هیولای زبانهای برنامهنویسی» را به خود اختصاص میدهد. با توجه به ساختار و نقشهی راه توسعهی خود، هنوز هم به عنوان یکی از پر طرفدارترین و پر کاربردترین زبانهای برنامهنویسی ساخت دست بشر به شمار میرود.
سیپلاسپلاس با قابلیتهای انواع داده ایستا، نوشتار آزاد، چندمدلی، معمولاً زبان ترجمه شده با پشتیبانی از برنامهنویسی ساختیافته، برنامهنویسی شیءگرا، برنامهنویسی جنریک است. C++ به همراه جد خود C از پرطرفدارترین زبانهای برنامهنویسی تجاری هستند بنا بر این در زیر فلسفهای از این زبان را بیان می کنیم:
لیستی از این کتابخانههای همراه با توضیحات در لینک زیر آمده است : A list of open source C++ libraries - cppreference.com
لیست کامل انواع کامپایلرها : List of compilers - Wikipedia
ویژگیهای جدید در ویرایش ۱۱، ۱۴، ۱۷ و ۲۰ چیست؟
زبان C++11 (معروف به C++0x) یک نسخه استاندارد از زبانC++ است که در ۱۲ آگوست ۲۰۱۱ منتشر و توسط ISO جایگزین C++03 شد این نسخه دارای نشان ISO/IEC 14882:2011 می باشد و در تاریخ ۱۸ آگوست ۲۰۱۴ نسخه جدید آن یعنی C++14 منتشر و جایگزین C++11 شد.
امکانات اضافه شده به هسته C++ : یکی از وظایف کمیته استاندارد سازی توسعه هسته زبان است.در توسعه فعلی چندین بخش از زبان بهبود یافته که شامل چندنخی (multithreading) ، پشتیبانی از برنامهنویسی عمومی، مقدار دهی اولیه یکنواخت و پیشرفت عملکرد میباشد.
ویژگیهای هسته زبان و تغییرات آن به چهار بخش کلی دسته بندی شداند :
1. پیشرفت در عملکرد زمان اجرا (Run-Time)
2. پیشرفت در عملکرد زمان ساخت (Build-Time)
3. پیشرفت در ویژگی ها (قابلیت استفاده)
4. و قابلیت های جدید
ویرایش C++ 14 بر روی اشکالزدائی و بهبودهای جزیی استاندارد قبلی یعنی C++11 تمرکز کرده است؛ این زبان در تاریخ ۱۵ می ۲۰۱۳ منتشر و در ۱۵ آگوست ۲۰۱۴ بعد از رای گیری و انجام تغییراتی جزئی استاندارد این زبان منتشر شد. بدلیل این که عموماً تاریخ انتشار این زبان بطور قابل ملاحظهای دیر هنگام بوده است به C++14 گاهی C++1y نیز گفته میشود. همانند استاندارد C++11 که به آن C++0x گفته میشده و قرار بر این بوده که قبل از ۲۰۱۰ منتشر شود (البته تا سال ۲۰۱۱ انتشار به تعویق افتاد).
گرچه تمامی کامپایلرها درحال کاربروی C++14 هستند اما هنوز تمامی آن ها ازC++ 14 پشتیبانی نمیکنند.
در C++11 و C++14 توابع جدیدی به هسته اصلی زبان و کتابخانه استاندارد آن اضافه شده است که شامل بسیاری از کتابخانههای C++TR1 به استثنای کتابخانهی توابع ریاضی ویژه میباشد.
ویژگیهای اضافه شده کتابخانه در ویرایش ۱۱
ویژگیهای اضافه شده به زبان در ویرایش ۱۴
با توجه به پیشرفت و توسعهی زبانهای برنامهنویسی، به ویژه ظهور زبانهای جدید که جهت حل مشکلات زبانهای موجود و یا با هدف ایجاد انقلاب و یا سهولت برنامهنویسی، یکی از سوألاتی که مدام به ذهن میآید این است که چه زبانی را باید انتخاب کرد که از لحاظ بُعد علمی، اقتصادی و فنی بهترین انتخاب باشد تا با یک خیال راحت به یادگیری آن بپردازیم.
در این مقاله به مزایای این زبان نسبت به دیگر زبانها و همچنین چشماندازی از آیندهی زبان اشاره شده است؛ سیپلاسپلاس به عنوان قدرتمندترین زبان برنامهنویسی تا به کنون است که به جرأت میتوان گفت به عنوان یک زبان برنامهنویسیِ غالب بر دیگر زبانهای برنامهنویسی لقب «هیولای زبانهای برنامهنویسی» را به خود اختصاص میدهد. با توجه به ساختار و نقشهی راه توسعهی خود، هنوز هم به عنوان یکی از پر طرفدارترین و پر کاربردترین زبانهای برنامهنویسی ساخت دست بشر به شمار میرود.
سیپلاسپلاس با قابلیتهای انواع داده ایستا، نوشتار آزاد، چندمدلی، معمولاً زبان ترجمه شده با پشتیبانی از برنامهنویسی ساختیافته، برنامهنویسی شیءگرا، برنامهنویسی جنریک است. C++ به همراه جد خود C از پرطرفدارترین زبانهای برنامهنویسی تجاری هستند بنا بر این در زیر فلسفهای از این زبان را بیان می کنیم:
- زبانC++ طراحی شدهاست تا یک زبان عمومی با کنترل نوع ایستا و همانند C قابل حمل و پربازده باشد.
- زبانC++ طراحی شدهاست تا مستقیماً و بصورت جامع از چندین شیوه برنامهنویسی (برنامهنویسی ساختیافته، برنامهنویسی شیگرا، انتزاع داده، و برنامهنویسی جنریک)
- زبانC++ طراحی شده است تا به برنامهنویس امکان انتخاب دهد حتی اگر این انتخاب اشتباه باشد.
- زبانC++ طراحی شده است تا حداکثر تطابق با C وجود داشته باشد و یک انتقال راحت از C را ممکن سازد.
- زبانC++ از بکاربردن ویژگیهای خاص که مانع از عمومی شدن است خودداری مینماید.
- زبانC++ از ویژگیهایی که بکار برده نمیشوند استفاده نمیکند.
- زبانC++ طراحی شدهاست تا بدون یک محیط پیچیده عمل نماید.
لیستی از این کتابخانههای همراه با توضیحات در لینک زیر آمده است : A list of open source C++ libraries - cppreference.com
لیست کامل انواع کامپایلرها : List of compilers - Wikipedia
ویژگیهای جدید در ویرایش ۱۱، ۱۴، ۱۷ و ۲۰ چیست؟
زبان C++11 (معروف به C++0x) یک نسخه استاندارد از زبانC++ است که در ۱۲ آگوست ۲۰۱۱ منتشر و توسط ISO جایگزین C++03 شد این نسخه دارای نشان ISO/IEC 14882:2011 می باشد و در تاریخ ۱۸ آگوست ۲۰۱۴ نسخه جدید آن یعنی C++14 منتشر و جایگزین C++11 شد.
امکانات اضافه شده به هسته C++ : یکی از وظایف کمیته استاندارد سازی توسعه هسته زبان است.در توسعه فعلی چندین بخش از زبان بهبود یافته که شامل چندنخی (multithreading) ، پشتیبانی از برنامهنویسی عمومی، مقدار دهی اولیه یکنواخت و پیشرفت عملکرد میباشد.
ویژگیهای هسته زبان و تغییرات آن به چهار بخش کلی دسته بندی شداند :
1. پیشرفت در عملکرد زمان اجرا (Run-Time)
2. پیشرفت در عملکرد زمان ساخت (Build-Time)
3. پیشرفت در ویژگی ها (قابلیت استفاده)
4. و قابلیت های جدید
ویرایش C++ 14 بر روی اشکالزدائی و بهبودهای جزیی استاندارد قبلی یعنی C++11 تمرکز کرده است؛ این زبان در تاریخ ۱۵ می ۲۰۱۳ منتشر و در ۱۵ آگوست ۲۰۱۴ بعد از رای گیری و انجام تغییراتی جزئی استاندارد این زبان منتشر شد. بدلیل این که عموماً تاریخ انتشار این زبان بطور قابل ملاحظهای دیر هنگام بوده است به C++14 گاهی C++1y نیز گفته میشود. همانند استاندارد C++11 که به آن C++0x گفته میشده و قرار بر این بوده که قبل از ۲۰۱۰ منتشر شود (البته تا سال ۲۰۱۱ انتشار به تعویق افتاد).
گرچه تمامی کامپایلرها درحال کاربروی C++14 هستند اما هنوز تمامی آن ها ازC++ 14 پشتیبانی نمیکنند.
در C++11 و C++14 توابع جدیدی به هسته اصلی زبان و کتابخانه استاندارد آن اضافه شده است که شامل بسیاری از کتابخانههای C++TR1 به استثنای کتابخانهی توابع ریاضی ویژه میباشد.
ویژگیهای اضافه شده کتابخانه در ویرایش ۱۱
- std::move
- std::forward
- std::to_string
- type traits
- smart pointers
- std::chrono
- tuples
- std::tie
- std::array
- unordered containers
- std::make_shared
- memory model
- move semantics
- variadic templates
- rvalue references
- initializer lists
- static assertions
- auto
- lambda expressions
- decltype
- template aliases
- nullptr
- strongly-typed enums
- attributes
- constexpr
- delegating constructors
- user-defined literals
- explicit virtual overrides
- final specifier
- default functions
- deleted functions
- range-based for loops
- special member functions for move semantics
- converting constructors
- explicit conversion functions
- inline-namespaces
- non-static data member initializers
- right angle brackets
- user-defined literals for standard library types
- compile-time integer sequences
- std::make_unique
ویژگیهای اضافه شده به زبان در ویرایش ۱۴
- binary literals
- generic lambda expressions
- lambda capture initializers
- return type deduction
- decltype(auto)
- relaxing constraints on constexpr functions
- variable templates
- std::variant
- std::optional
- std::any
- std::string_view
- std::invoke
- std::apply
- splicing for maps and sets
- template argument deduction for class templates
- declaring non-type template parameters with auto
- folding expressions
- new rules for auto deduction from braced-init-list
- constexpr lambda
- lambda capture this by value
- inline variables
- nested namespaces
- structured bindings
- selection statements with initializer
- constexpr if
- utf-8 character literals
- direct-list-initialization of enums