تاریخچه و کاربرد های زبان c++

تاریخچه و کاربرد های زبان c++ :تاریخچه و کاربرد های زبان c++مقدمهبررسی تاریخچه‌ی زبان‌های برنامه نویسی از گذشته تا به امروزهر چیزی در این دنیا تاریخچه‌ای دارد دیگر چه برسد به زبان های برنامه نویسی که عمری را پشت سر گذاشته‌اند و یکی پس از دیگری به دنیای IT آمده‌اند ، تاجایی‌که شکل دنیای واقعی را هم تغییر داده‌!5 نسل زبان های برنامه نویسی : از نسل سوخته تا نسل برافروختهاولین زبان های برنامه نویسی ای که پایشان را به دنیای IT گذاشتند، خیلی چغر و بدبدن بودند و به‌سادگی نمی‌شد سر از زبانشان درآورد. مهندسین IT به این زبان‌ها ، سطح پایین می‌گویند. البته قصد توهین ندارند فقط منظورشان این است که این زبان‌ها بیشتر به سبک ماشین‌ها حرف می‌زنند به همین دلیل برای انسان‌ها به‌راحتی قابل‌فهم وقابل‌یادگیری نیستند.اما به‌مرور زبان های برنامه نویسی سطح بالا روی کار آمدند که درکشان برای انسان‌ها هم راحت‌تر بود .بریم سراغ معرفی 5 نسل زبان برنامه نویسی تا از این به بعد بدانید که هر کدام از این زبان‌های امروزی از چه نسل و تیروطایفه‌ای هستند.نسل اول : زبان های برنامه نویسی دارای زبان ماشین (زبان صفر و یک) بودند.نسل دوم : زبان‌های قابل‌درک‌تری برای انسان بودند (مانند زبان اسمبلی).نسل سوم : به کامپایلر نیاز دارند و دستوراتشان برای انسان قابل‌فهم است مثل زبان COBOL(Compiler یا مفسر برنامه‌ای است که دستورات برنامه نویسی را به دستورات صفرویک تبدیل می‌کند. )نسل چهارم : زبان محاوره‌ای دارند، مثل Oracleو SQLها.نسل پنجم : به‌وسیله‌ی الگوریتم‌هایی که برنامه‌نویس می‌نویسد قابل‌درک‌اند. مثل prplog وVisual basicمهم‌ترین زبان‌های برنامه نویسی تا به امروزشکی نیست هر زبانی که تا به امروز پا به عرصه‌ی IT گذاشته‌اند به نوبه‌ی خودشان مهم بوده‌اند و بعضی‌هایشان هنوز هم مهم‌اند. گذشت زمان و پیشرفت تکنولوژی عیار و اهمیت زبان‌ها را نشان می‌دهددر این قسمت با مهم‌ترین آنها در تاریخچه‌ی زبان‌های برنامه نویسی آشنا خواهید شد. زبان‌هایی که دنیای امروز را شکل داده‌اند!C++(سی پلاس پلاس)با وجود اینکه C عمری طولانی دارد و می‌شود گفت حق مادری به گردن همه‌ی زبان‌های برنامه نویسی مدرن دارد اما ثابت کرده که هنوز هم دود از کنده بلند می‌شود . چراکه همه‌ی سیستم‌عامل‌ها از ویندوز و لینوکس تا اندروید و iOS به زبان سی یا یکی از مشتقاتش نوشته شده‌اند. Firefox به زبان سی و برنامه‌ی Office به زبان C++ و C# نوشته شده‌اند.JAVA (جاوا)زبان جاوا یکی دیگر از محبوب‌ ترین و مهم ترین زبان های برنامه نویسی است . یک زبان Cross Platform که با شعار «یک‌بار بنویس، همه‌جا اجرا کن!» دل برنامه‌نویس‌ها برده است . این زبان شی‌گرا کاربردهای بسیاری دارد ، از توسعه‌ی Back endگرفته تا برنامه‌نویسی برای اندروید! یک زبان قدرتمند و همه‌فن‌حریف که هر سال نامش در بین زبان‌های پرکاربرد می‌درخشد. نرم‌افزارهای تجاری مهمی مثل بورس سهام آمریکا، سایت آمازون، بخش‌هایی از گوگل و سیستم‌عامل اندروید با کدهای جاوا ساخته شده‌اند.Javascript (جاوا اسکریپت)نتایج سایت StackOverflow نشان ‌می‌دهد که جاوااسکریپت یکی از مهم‌ترین و پرکاربردترین زبان های برنامه نویسی چندمنظوره است. این زبان در یک دهه‌ی اخیر رشد شگفت‌انگیزی داشته است. قابلیت‌های فراوان این زبان هم روزبه‌روز به محبوبیتش اضافه می‌کند. به‌طوری‌که استیو یِگه ( Steve Yegge) از کارمندان ارشد گوگل و آمازون اعتقاد دارد جاوااسکریپت در آینده به بزرگترین زبان برنامه نویسی دنیا تبدیل خواهد شد.تاریخچه Cزبان برنامه نویسی C در سال 1972 توسط دنیس ریچی در ایالات متحده توسعه یافت . زبان برنامه نویسی C به عنوان پایه سایر زبان های برنامه نویسی محسوب می شود ، به همین دلیل به زبان مادری معروف است . این پیشرفتی برای غلبه بر مشکلات زبان های قبلی مانند B ، BCPLو غیره بود . در ابتدا زبان Cبرای استفاده در سیستم عامل یونیکس توسعه یافت و بسیاری از ویژگی های زبان های قبلی مانند B و BCPL را به ارث برد.زبانC برای ایجاد برنامه‌های کاربردی سیستمی که مستقیماً با دستگاه‌های سخت‌افزاری مانند درایورها، هسته‌ها و غیره تعامل دارند، توسعه داده شده است.زبان C را می توان به روش های زیر تعریف کرد:اول : زبان C به عنوان زبان مادریزبان Cبه عنوان زبان مادر تمام زبان های برنامه نویسی مدرن در نظر گرفته می شود زیرا اکثر کامپایلرها ، JVMها ، هسته ها به زبان Cنوشته می شوند و این زبان مفاهیم اصلی مانند آرایه ، رشته ها ، توابع ، مدیریت فایل ها و موارد دیگر را ارائه می دهد که بیشتر زبان های برنامه نویسی از آن پیروی و استفاده می کنند ، به عنوان مثال زبان های C++ ، Java، C# ، و غیره .دوم : به عنوان یک زبان برنامه نویسی سیستمیک زبان برنامه نویسی سیستم ، برای ایجاد نرم افزار سیستم استفاده می شود و مثلا نمی توان از آن برای برنامه نویسی اینترنتی مانند جاوا، دات نت، پی اچ پی و غیره استفاده کرد . زبان C یک زبان برنامه نویسی سیستمی است به این دلیل که می توان از آن برای انجام برنامه نویسی سطح پایین (به عنوان مثال درایور) استفاده کرد . به طور کلی برای ایجاد دستگاه های سخت افزاری ، سیستم عامل ، درایورها ، هسته ها و غیره استفاده می شود و به عنوان مثال ، هسته لینوکس به زبان Cنوشته شده است.سوم : به عنوان یک زبان رویه اییک رویه ای به عنوان تابع ، متد ، روال ، زیر روال و غیره شناخته می شود. زبان رویه ای مجموعه ای از مراحل را برای برنامه مشخص می کند تا مشکل را حل کند . یک زبان رویه ای ، برنامه را به توابع ، ساختارهای داده و غیره تقسیم می کندC . یک زبان رویه ای وابسته به دستور عمل است . در C ، متغیرها و نمونه های اولیه تابع باید قبل از استفاده اعلام شوند .چهارم : به عنوان یک زبان برنامه نویسی ساختار یافتهزبان برنامه نویسی ساختار یافته زیرمجموعه ای از زبان رویه ای است. ساختار به معنای تقسیم یک برنامه به بخش ها یا بلوک ها است تا درک آن آسان باشد . در زبان Cبا استفاده از توابع برنامه را به قسمت هایی تقسیم می کنیم . درک و اصلاح برنامه را آسان تر می کند.پنجم : به عنوان یک زبان برنامه نویسی سطح متوسطCبه عنوان یک زبان سطح متوسط در نظر گرفته می شود زیرا از ویژگی زبان های سطح پایین و سطح بالا پشتیبانی می کند . برنامه زبان Cبه کد اسمبلی تبدیل می شود ، از محاسبات اشاره گر (سطح پایین) پشتیبانی می کند ، اما مستقل از ماشین است (ویژگی سطح بالا) .C یک زبان سطح پایین مختص یک ماشین است ، یعنی وابسته به ماشین . اینکه به ماشین وابسته است یعنی سریع اجرا می شود اما درک آن آسان نیست. یک زبان سطح بالا مختص یک ماشین نیست ، یعنی مستقل از ماشین و درک آن آسان است.(ویژگی سطح پایین)تفاوت های زبان C و C++زبان برنامه نویسی C یک زبان Procedural یا رویه ای است در حالیکه زبان برنامه نویسی ++C یک زبان برنامه نویسی Object Orientedیا شیء گرا است . مشکلاتی و مواردی در زبان برنامه نویسی C وجود داشت که بر اساس همین مشکلات زبان برنامه نویسی ++C طراحی و ارائه شد.بنابراین ++C برگرفته ای از زبان برنامه نویسی C است . با توجه به اینکه مبنای ساختاری ++Cبر اساس کلاس ها است ، نسخه های اولیه ای که از ++C ارائه شده بود به عنوان C With Classes مطرح شد یعنی اضافه شدن Class به C ، مهمترین تفاوت ها در بحث ارث بری از Object ها و ایجاد شدن Class ها بود اما امروزه اکثر برنامه هایی که به زبان C نوشته می شوند توسط کامپایلر زبان ++C قابل کامپایل هستند.++C توسعه یافته و در واقع نسخه جدید برنامه نویسی Cبه حساب می آید و در ++Cشما قابلیت استفاده مجدد از کد یا Reusable Codeرا دارید که در C این امکان نیستزبان C چیزی به نام ) Virtual Function توابع مجازی) نداشته اما در ++C توابع مجازی یا Virtual Function ها معرفی شدند.در زبان C قابلیت چندوجهی یا Polymorphism وجود نداشت اما در ++C قابلیت Polymorphism اضافه شده است ، Polymorphism مهمترین قسمت از برنامه نویسی OOPS است.در C امکان بارگذاری بیش از حد وجود نداشت اما در ++Cاین قابلیت یکی از بهترین امکانات به حساب می آید و در ضمن مبانی برنامه نویسی در C بصورت بالا به پایین است در حالیکه در ++C طراحی برنامه بصورت پایین به بالا انجام می شود.متصل کردن داده ها و توابع در Cبسیار سخت بود اما در ++Cاین فرآیند با استفاده از Objectها به راحتی انجام می شود . در Cشما در هر تابعی می توانستید تابع mainرا فراخوانی کنید اما در ++Cشما نمی توانید اینکار را بکنید.ارث بری در C بی معنی بود اما در ++C فرآیند ارث بری یا Inheritance قابل پیاده سازی است . مدیریت خطاها در C بسیار سخت تر از ++C است ، با توجه به اینکه از Class در ++C استفاده می شودکاربرد زبان برنامه نویسی C++ و استفاده‌های آنکاربردهای زبان سی پلاس پلاس عمدتاً خیلی فراوان است. در بسیاری از صنایع مختلف از این زبان استفاده می‌شود. به علت اینکه این زبان یک‌زبان سطح بالا است میان توسعه‌دهندگان یک‌زبان محبوب به‌حساب می‌آید از C++ در موارد زیل استفاده می شود:• ساخت اپلیکیشن های کاربردی• بازی‌ها• انیمیشن‌سازی• مرورگرهای وب• دسترسی به پایگاه دادهبرای توسعه برنامه‌های جدید از C++ استفاده می‌شود . برنامه‌های کاربردی مبتنی بر رابط کاربری گرافیکی ، که برنامه‌های پرکاربردی مانند Adobe Photoshop و غیره هستند. بسیاری از برنامه‌های کاربردی سیستم‌های Adobeدر C++ مانند Illustrator، Adobe Premiere و… با زبان سی پلاس پلاس نوشته‌شده‌اند . یک کاربرد زبان برنامه نویسی C++ توسعه بازی‌ها است. این زبان پیچیدگی بازی‌های سه‌بعدی را کاهش داده و به بهینه‌سازی منابع کمک می‌کند . همچنین سی پلاس پلاس از گزینه بازی‌های چند نفره همراه با شبکه پشتیبانی می‌کند . استفاده از C++ امکان برنامه‌نویسی رویه‌ای را برای عملکردهای فشرده CPU و کنترل سخت‌افزار فراهم می‌کند و این زبان بسیار سریع است.کاربرد C++ درانیمیشن:نرم‌افزارهای انیمیشن‌سازی زیادی وجود دارد که با کمک زبان C++ توسعه‌یافته‌اند. انیمیشن‌های سه‌بعدی ، مدل‌سازی ، شبیه‌سازی ، نرم‌افزارهای رندر به‌عنوان مجموعه ابزار قدرتمند شناخته می‌شوند و یکی از کاربردهای زبان سی پلاس پلاس به‌حساب می‌آیند.هم‌چین می‌توان کاربرد C++ را در کارهایی مانند پردازش تصوی ر، برنامه‌های کاربردی حسگر تلفن همراه ، جلوه‌های بصری و مدل‌سازی که عمدتاً در C++ کدگذاری شده است نیز مشاهده کرد.کاربردهای C++ در ساخت بازی‌ها:یک کاربرد زبان برنامه نویسی c++ توسعه بازی‌ها است. این زبان پیچیدگی بازی‌های سه‌بعدی را کاهش داده و به بهینه‌سازی منابع کمک می‌کند. همچنین سی پلاس پلاس از گزینه بازی‌های چند نفره همراه با شبکه پشتیبانی می‌کند. استفاده از C++ امکان برنامه‌نویسی رویه‌ای را برای عملکردهای فشرده CPU و کنترل سخت‌افزار فراهم می‌کند و این زبان بسیار سریع است و به همین دلیل در توسعه بازی‌های مختلف یا موتورهای بازی به‌طور گسترده استفاده می‌شود.بازی‌های محبوب نوشته شده با C++ :بازی‌های توسعه‌یافته با استفاده از C++ شامل Witcher 3، Counter-Strike، Doom III Engine، World of Warcraft، King Quest، Football Pro و Invictus و بسیاری دیگر می‌شوند.کاربرد زبان برنامه نویسی c++ در وب:از زبان ++C برای توسعه مرورگرها نیز استفاده می‌شود. ++C برای ساخت گوگل کروم و مرورگر اینترنت موزیلا فایرفاکس استفاده می‌شود. برخی از برنامه‌ها به زبان++C نوشته‌شده‌اند که مرورگر کروم یکی از آن‌هاست و بسیاری از افزونه‌های این مرورگرها با این زبان نوشته‌شده است.همچنین موزیلا برنامه دیگری نیز دارد که به زبان ++C نوشته‌شده است که کلاینت ایمیل Mozilla Thunderbird است. ++C همچنین یک موتور رندر برای پروژه‌های منبع باز گوگل و موزیلا است که این هم یکی دیگر از انواع کاربرد ++C در وب است.دسترسی به پایگاه داده:زبان ++C همچنین برای توسعه نرم‌افزار پایگاه داده یا نرم‌افزار پایگاه داده منبع باز استفاده می‌شود. مثال برای این کاربرد ++C MySQL است که یکی از محبوب‌ترین نرم‌افزارهای مدیریت پایگاه داده است و به‌طور گسترده در سازمان‌ها یا در بین توسعه‌دهندگان استفاده می‌شود.زبان ++C به‌صرفه جویی در زمان و هزینه برای سیستم‌های تجاری و نرم‌افزارهای بسته‌بندی‌شده کمک زیادی می‌کند. برنامه‌های کاربردی دیگری مبتنی بر دسترسی به نرم‌افزار پایگاه داده استفاده می‌شود که ویکی‌پدیا، یاهو، یوتیوب و غیره هستند.مثال دیگر بلومبرگ RDBMS است که به ارائه اطلاعات مالی بلادرنگ به سرمایه‌گذاران کمک می‌کند و یکی از کاربردهای سی پلاس پلاس است. عمدتاً این برنامه‌ها به زبان++C نوشته‌شده‌اند که دسترسی سریع و سریع به پایگاه داده را برای ارائه اطلاعات مربوط به تجارت و امور مالی و اخبار در سراسر جهان را فراهم می‌کنند.کاربرد سی پلاس پلاس در مدیا پلیر:++C همچنین برای ایجاد یک پخش‌کننده رسانه، مدیریت فایل‌های ویدئویی و فایل‌های صوتی استفاده می‌شود. مثال Winamp Media Player است که به زبان ++C توسعه‌یافته است که به ما امکان استفاده از موسیقی، دسترسی و اشتراک‌گذاری ویدیوها و فایل‌های موسیقی را می‌دهد. ساخت اپلیکیشن های میدیا پلیر یکی دیگر از کاربردهای زبان ++C است که تاریخچه ساخت آن‌ها با این زبان آغازشده استاستفاده از ++C درکامپایلرها:اکثر کامپایلرها عمدتاً فقط به زبان++C نوشته می‌شوند. کامپایلرهایی که برای کامپایل کردن زبان‌های دیگر مانند سی شارپ، جاوا و غیره استفاده می‌شوند که عمدتاً با ++C نوشته‌شده‌اند. همچنین ++C در توسعه این زبان‌ها استفاده می‌شود و این زبان برنامه‌نویسی مستقل از پلتفرم است و قادر به ایجاد انواع نرم‌افزار استکاربرد زبان برنامه نویسی c++ در سیستم‌عامل:++C همچنین برای توسعه بیشتر سیستم‌عامل‌های مایکروسافت و بخش‌های کمی از سیستم‌عامل اپل استفاده می‌شود. مایکروسافت ویندوز ۹۵، ۹۸، ۲۰۰۰، XP، آفیس، اینترنت اکسپلورر و ویژوال استودیو، سیستم‌عامل‌های موبایل سیمبین همه به زبان ++C نوشته‌شده‌اند و کاربردهای ++C در سیستم‌های عامل نیز فراوان است.اسکن:برنامه‌هایی مانند اسکنر فیلم یا اسکنر دوربین نیز به زبان ++C توسعه‌یافته‌اند. همچنین ++C برای توسعه فناوری PDF برای چاپ اسناد، تبادل اسناد، بایگانی سند و انتشار اسناد نیز استفاده‌شده است.سیستم‌های ابری / توزیع‌شده:سازمان‌های بزرگی که سیستم‌های ذخیره‌سازی ابری و سایر سیستم‌های توزیع‌شده را توسعه می‌دهند، به‌صورت گسترده از ++C استفاده می‌کنند، زیرابه‌خوبی با سخت‌افزار ارتباط دارد و با بسیاری از ماشین‌ها سازگار است. سیستم‌های ذخیره‌سازی ابری از فایل-سیستم‌های مقیاس‌پذیر استفاده می‌کنند که نزدیک به سخت‌افزار کار می‌کنند. ++C در چنین شرایطی به یک انتخاب ترجیحی تبدیل می‌شود زیرابه سخت‌افزار نزدیک است و همچنین کتابخانه‌های چند رشته‌ای در ++C هم‌زمانی و تحمل بار بالایی را ارائه می‌دهند که در چنین سناریوهایی بسیار موردنیاز است و یکی از کاربردهای مهم س پلاس پلاس به‌حساب می‌آیدکاربردهای دیگر ++C:++C همچنین برای کاربردهای پزشکی و مهندسی، سیستم‌های طراحی به کمک رایانه استفاده می‌شود. این برنامه‌ها مانند دستگاه‌های اسکن MRI، سیستم‌های CAM که عمدتاً در بیمارستان‌ها،سازمان‌های دولتی، سایر بخش‌های ساخت‌وساز و معدن و… استفاده می‌شودسخن آخر :تاریخچه زبان‌های برنامه نویسی جذاب است. چه کسی فکر می‌کند که الگوریتمی‌از اواسط قرن نوزدهم می‌تواند راه را برای جامعه فناوری محور که امروز در آن زندگی می‌کنیم هموار کند . از کدهای ماشینی اولیه گرفته تا کدهای پیچیده قابل خواندن توسط انسان که امروزه فناوری‌های مورد علاقه ما را تأمین می‌کند، زبان‌های برنامه نویسی مسیری طولانی را طی کرده اند. آنچه مسلم است، برنامه نویسی همانطور که در 150 سال گذشته انجام شده است همچنان ادامه خواهد داشت و دیدن اینکه آینده چه چیزی را به همراه دارد هیجان انگیز است.زبان‌های برنامه‌نویسی مختلف به منظور رفع نیازهای مختلف صنعت توسعهٔ نرم‌افزار در طول زمان ابداع شده‌اند و این در حالی است که برخی از آن‌ها از یکسو با هدف رفع نواقص زبان‌های قدیمی‌تر و همچنین عرضهٔ ویژگی‌های مختص به خود و از سوی دیگر به بازار عرضه‌ شده‌اند که توسعه دهنده ها(Developer) با بررسی جنبه‌های مختلف توسعۀ اپلیکیشن‌شان و متناسب با نیازهای خود می‌تواند زبان‌های برنامه‌نویسی مناسب را انتخاب کنند.زبان C++ همچون دو زبان دیگر (JAVA و C# ) از زبانها تمام نشدنی و آینده دار محسوب می شود . این زبان محبوبیت بسیاری دارد و به خاطر کاربردی که در صنعت و همچنین آینده ی تکنولوژی دارد (اینترنت اشیا و خودروهای هوشمند) همچنان مورد توجه است . بنابراین اگر قصد دارید در هریک از زمینه ها و صنایعی که گفته شد فعالیت کنید C++ بهترین گزینه محسوب میشود.حتی باوجوداینکه برنامه‌های بسیار مختلفی توسط این زبان برنامه‌نویسی تولید شده‌اند، اما بازهم می‌توان عنوان کرد که زبان برنامه‌نویسی C++ غیر قابل تکرار است. از مهم‌ترین اپلیکیشن‌ها و برنامه‌هایی که توسط این زبان برنامه‌نویسی تولید شده‌اند می‌توان به محصولات مختلف ادوبی مثل فتوشاپ، ایلستریتور، ایندیزاین اشاره کرد. همچنین آمازون و فیسبوک نیز اپلیکیشن‌های خودشان را به کمک همین زبان ساخته‌اند.از سوی دیگر باتوجه‌به این‌که افراد بسیار زیادی در سراسر دنیا وجود دارند که هم‌اکنون در حال استفاده از زبان برنامه‌نویسی C++ هستند ، می‌توان این انتظار را داشت که این زبان بیش‌ازپیش نیز گسترش پیدا کند.زبان برنامه‌نویسی C++ به‌عنوان یکی از محبوب‌ترین و کارآمدترین زبان‌های برنامه‌نویسی دنیا شناخته می‌شود . به همین دلیل می‌توان از آن به‌عنوان یک زبان آینده‌دار نیز یادکرد. زبان C++ یک زبان چندمنظوره و متن باز(Open source) است که به دلیل مزایای بسیار زیادی که دارد در سراسر دنیا توسط برنامه‌نویسان زیادی مورداستفاده قرار می‌گیرد.پدید آورندگان : محمدحسین عظیمی / مینا محمدی / علی عظیمی نیا / زینب اکبری / فاطمه زهرا مرندی/دانیل کفاش تهرانینام استاد :دکتر مریم حاجی اسمعیلی. دکترای علوم کامپیوتر از دانشگاه کینگستون لندنDr.Maryam HajiesmaeiliPhD of computer science from Kingston university of Londonhttps://ir.linkedin.com/in/dr-maryam-hajiesmaeili-90930743منابعprogramming.tosinso.com / www.javatpoint.com/history-of-c-language/www.cplusplus.com/info/history / www.javatpoint.com/cpp-history /dl.acm.org/doi/10.1145/234286.105783