زبان برنامه‌نویسی ++C (سی پلاس پلاس) یک زبان برنامه‌نویسی کامپیوتری عمومی با قابلیت‌های سطح بالا و سطح پایین می‌باشد. این زبان دارای قابلیت‌های انواع داده ایستا، نوشتار آزاد، چندمدلی، معمولاً زبان ترجمه شده با پشتیبانی از برنامه‌نویسی ساخت‌یافته، برنامه‌نویسی شی‌گرا، برنامه نویسی جنریک است. زبان ++c یک زبان سطح میانی در نظر گرفته می‌شود. این زبان دارای قابلیت زبان‌های سطح بالا و پایین بصورت همزمان است. این زبان در سال ۱۹۷۹ در آزمایشگاه های بل (Bell Labs) و بر مبنای زبان سی ساخته شد و آن را " C با کلاس" نامگزاری نمودند. در سال ۱۹۸۳به ++c تغییر نام داد. توسعه با اضافه نمودن کلاس‌ها و ویژگی‌های دیگری مانند توابع مجازی، سربارگزاری عملگرها، وراثت چندگانه، قالب توابع، و پردازش استثنا انجام شد. این زبان برنامه‌نویسی در سال ۱۹۹۸ تحت نام ISO/IEC 14882:1998 استاندارد شد. کامپایلرها و IDE های گوناگونی برای زبان ++C وجود دارند از بین معروفترین آن ها می توان موارد زیر اشاره نمود:

 Turbo C:یکی از کامپایلرهای قدیمی زبان برنامه نویسی C است اما با وجود اینکه مدت ها از تاریخ انتشار آن میگذرد همچنان یکی از محبوب ترین کامپایلرها به شمار می رود و در بسیاری دانشگاه های کشورمان نیز از این نرم افزاراستفاده می شود. این نرم افزار دارای ظاهر جالبی نبوده و همواره محیطی مشابه محیط داس را برای کاربران تداعی می کند چراکه از ابتدا این کامپایلر برای سیستم عامل داس نوشته شده است.

Turbo C++: یکی از زبان های برنامه نویسی قدرتمند است و ما امروز یکی از کامپایلرهای این زبان را در اختیار شما می گذاریم که کار با آن ساده است و در عین حال تمامی امکانات مورد نیاز شما را داراست و برنامه های شما را در تمامی سیستم عامل ها اجرا می کند.

Borland C++:نام یکی از کامل ترین و مشهورترین نسخه های زبان های برنامه نویسی تحت ویندوزبرای توسعه نرم افزارهای کاربردی و بانک های اطلاعاتی می باشد. این نرم افزار برنامه نویسی قابلیت پشتیبانی از سیستم عامل های جدید ویندوز تا ویندوز 7 را دارا می باشد و در آن از تکنولوژی Client-Server استفاده شده است و امکان برنامه نویسی بروی Linux نیز در این زبان برنامه نویسی وجود دارد.

Microsoft C++/C: زبان C++/C یکی از قدرتمندترین زبان های برنامه نویسی می باشد. منظور از C++/C یعنی هم زبان C و هم زبان  ++C است.  ++C خود فرزند C است و همه قابلیت های C به علاوه برخی قابلیت های جدید مثل شی ء گرایی را دارا می باشد، در نتیجه، کامپایلر های  ++C، کد نوشته شده به زبان C را نیز می توانند کامپایل کنند. زبان C++/C وابسته به یک سیستم عامل نیست یعنی شما بعد از نوشتن برنامه خود به زبانC++/C، اگر کد استانداری نوشته باشید می توانید با توجه به سیستم عامل(ویندوز،گنو/لینوکس،مک و...)، کدتان را کامپایل کنید. می توان کد C++/C را در هر محیطی (مثلاً NotePad در ویندوز و یا gEdit در گنو/لینوکس) نوشته و بعد آن را بوسیله یک کامپایلر کامپایل کنیم، ولی برای راحتی کار ما می توانیم از یک IDE مناسب، نیز بهره ببریم.

چرا C++ پس از 35 سال همچنان در کاربردهای واقعی حکمرانی می‌کند؟

بیارنه استراستروپ، در سال 1979، طراحی C++ را آغاز کرد و این زبان برنامه‌سازی همه منظوره در برنامه‌سازی سیستم به تکیه گاه اصلی برای برنامه‌سازان و تولیدکنندگان نرم‌افزار مبدل شد، درحالی‌که همواره رقیبانی جدی داشته، زبان‌هایی مانند جاوا، جاوا اسکریپت، پایتون، Go و حالا هم زبان سوئیفتاز شرکت اپل. بیارنه استراستروپ، درحال حاضر مدیرعامل بخش فناوری شرکت مورگان استنلیدر نیویوک است و همزمان استاد مدعو در دانشکده علوم کامپیوتر دانشگاه کلمبیا و استاد و پژوهشگر برجسته در دانشکده علوم کامپیوتر دانشگاه تگزاس می‌باشد. دراین مصاحبه که توسط پل کریل ویراستار اینفوورلدصورت گرفته، بیارنه به ما از نقش C++ در دنیای امروز خواهد گفت، همچنین درباره دیگر رخدادها در تولید نرم‌افزار مانند زبان Go متعلق به گوگل و همچنین سوئیفت تازه وارد نقطه نظریات خود را ارائه می‌کند.

اینفوورلد. این روزها با وجود زبان‌های اسکریپتی مانند پایتون و جاوااسکریپت و زبان‌های دیگری مانند جاوا و Go  از گوگل، C++ چه نقشی ایفا می‌کند؟چگونه C++ موفق شد زنده بماند، رونق پیدا کند و با وجود این همه زبان برنامه‌سازی که دراین مدت پدیدآمده‌اند توانست تااین حد گسترش پیدا کند؟

استراستروپ. سوال خوبی است. بیش از 20 سال است که برخی افراد با جدیت پیش‌بینی ازبین رفتن C++ را می‌کنند، درحالی‌که این زبان درحال رشد و گسترش است. اساساً هیچ زبانی نتوانسته از پس پیچیدگی‌های موجود به مانند C++ برآید. اگر به سامانه‌های نهفته، پردازش تصویر، نرم‌افزارهای مخابراتی و نرم‌افزارهای مالی نگاه کنید، می‌بینید این C++ است که حکمرانی می‌کند. کاربرد C++ را در نرم‌افزارهای کوچک نمی‌توان خیلی به وضوح دید. کجا می‌توان C++ را یافت؟ جایی که واقعاً به کارایی نیاز دارید: گوگل، آمازون، جویشگرها و مانند این‌ها.

اینفوورلد. اخیراً به زبان برنامه‌سازی Go که در شرکت گوگل طراحی شده توجه ویژه‌ای شده است. چه دورنمایی برای این زبان متصور هستید؟

استراستروپ. به نظر می‌آید Go در زمره زبان‌هایی است که چند کار و وظیفه مشخص را می‌تواند به ظرافت و زیبایی انجام دهد. زبان‌هایی از این دست که می‌توانند فقط چند کار معین را به خوبی انجام دهند، کارایی و عمومیت را از دست می‌دهند. اما خوب، باید صبر کرد و دید!

اینفوورلد. برخی از زبان‌های اسکریپتی جدید با ایده استفاده آسان برای برنامه‌سازان  ساخته شده است. بااین حال شما معتقدید که C++ نیاز به توجه و درنظرگرفتن بیشتر دارد. چرا؟

استراستروپ. بله! به‌طور قطع باید به C++ توجه بیشتری داشت. C++ برای هسته‌های اصلی سامانه‌ها و کاربردهای اساسی طراحی شده است و همواره دریک کاربرد واقعی، همراه با آن از زبان‌های اسکریپتی نیز استفاده شده است. وقتی برای اولین بار شروع به استفاده از C++ کردم، برای هرکاربردی که به یک زبان برنامه‌سازی واقعی و کارایی واقعی نیاز داشت از آن بهره می‌گرفتم، اما همراه با آن از پوسته یونیکس نیز به عنوان زبان اسکریپتی استفاده می‌کردم. آن موقع این‌گونه عمل می کردم و امروز هم تقریباً کارها به همین روال پیش می‌رود. C++ برای کاربردهایی با کارایی بالا، اطمینان پذیری بالا، استفاده از حافظه با کمترین ردپاو مصرف انرژی پایین مناسب است، نه برای مشغولیات و سرگرمی‌ها و یا نرم‌افزارهای کوچکی که خیلی سریع باید آماده شوند. ما به این قلمرو تعلق نداریم!

اینفوورلد. در ژوئن گذشته، شرکت اپل از زبان جدید خود به‌نام سوئیفت رونمایی کرد. با توجه به آن‌که شرکت بزرگی مانند اپل این زبان را پوشش خواهد داد، فکر نمی‌کنید سوئیفت در آینده به زبانی مهم برای تولیدکنندگان نرم‌افزار مبدل گردد که توجه به آن اجتناب ناپذیر باشد؟

استراستروپ.فکر می‌کنم این‌گونه باشد. آن‌ها به Objective-C توجه کردند و سوئیفت دقیقاً به همان حوزه‌ای خواهد رفت که Objective-C به آن تعلق دارد.

اینفوورلد. در چکیده سمینار شما که قرار است چند روز آینده آن را به عنوان نطق اصلی ارائه کنید  آمده است: «C++ با دو چالش روبه روست: یکی کمک به برنامه‌سازان تا عملیات برنامه‌سازی مبرم و موردنیاز خود را برحسب کارایی، مقیاس‌پذیری و قابلیت اعتماد دربرنامه‌ها بیان کنند و دیگری کمک به آن‌ها تا بتوانند مولد کدهای ساده با قابلیت نگهداری بالا باشند». درباره این دو موضوع چکار می توان کرد؟

استراستروپ. در تلاشم تا دو موضوع را توضیح دهم.یکی کند و کاو در انتراع‌های کارآمد و استفاده کارآمد از سخت‌افزار و دیگری هرچه بیشتر آسان کردن برنامه‌نویسی. دراین خصوص،C++11 و C++14 جنبه‌های جدیدی را عرضه کرده‌اند. یک نسخه فرعیاز C++ امسال عرضه شد که به C++14 معروف است. دو کامپایلر GCC و Clang تمامی جنبه‌های 14C++ را پیاده‌سازی کرده‌اند. درحقیقت C++14 ، نسخه اصلیC++ را که به C++11 مشهور است کامل کرد. وقتی بناست یک محصول بزرگ مانند C++11 را عرضه کنید، برخی جنبه‌ها جا می‌مانند چون باید هرچه زودتر محصول خود را عرضه کنید، همچنین برخی جنبه‌ها به درستی کار نمی‌کنند مگر آن‌که همه را در کنار هم قرار دهیم و استفاده کنیم. C++14 شامل همان چیزهایی است که از C++11 جا مانده بود. حالا به لطف C++14 ، عبارت‌ها یا توابع لاندارا می‌توان به‌صورت عام نوشت، [یا به عبارت دیگر، C++14 عبارت‌های عام لاندارا پشتیبانی می‌کند.] همچنین می توان این عبارت‌ها را علاوه بر دو شیوه کپی و ارجاع با شیوه انتقالنیز گرفت. در C++14 استنتاج گونه‌ها علاوه بر آغازین دهی شیء‌ها و متغیرها شامل گونة بازگشت توابع نیز می‌شود. توابع ثابت، یعنی توابعی که می‌توان در زمان ترجمه یا کامپایل آن‌ها را محاسبه کرد، حالا می‌توانند شامل حلقه‌های for ساده باشند. C++14 متغیر الگورا نیز پشتیبانی می‌کند، آغازین دهی حافظه بهبود یافته و لفظ‌های تعریف شده توسط کاربررا نیز در اختیار داریم.

اینفوورلد. می‌خواستم نظر شما را درباره امنیت در برنامه‌سازی بدانم. چه چیزهایی را برنامه‌سازان درخصوص ایمن کردن برنامه‌هایشان باید بدانند؟ آیا C++ نسبت به سایر زبان‌ها، امن‌تر است؟

استراستروپ.من طرفدار پرو پا قرص اعمال امنیت و پشتیبانی از آن توسط سخت‌افزار هستم. با معیارهای زبان‌های برنامه‌سازی، اگر می‌خواهیم برنامه‌های خوبی داشته باشیم باید آن‌ها را ایمن گونهبنویسیم. این کار را می‌توان با C++ انجام داد. خود را درگیر و گرفتار جنبه‌های سطح پایین زبان برنامه‌سازی نکنید! همچنین [به‌جای کامپایلر] از مفسراستفاده نکنید، مفسرها شما را به جایی خواهند برد که شما را از پیگیری آنچه درحال انجام است، ناتوان می‌سازند. خلاصه آن‌که امنیت، یک موضوع سامانه‌ای است و نه موضوعی مربوط به زبان برنامه‌سازی.

اینفوورلد. در پایان، چیز دیگری هست که بخواهید درباره C++ یا تولید و توسعه نرم‌افزار بگویید؟

استراستروپ.هدف ما باید نیل به درجه بالایی از حرفه‌ای‌گری در تولید و توسعه نرم‌افزار باشد. در دنیای پیشرفته  امروز چیزهایی وجود دارد که به هیچ عنوان نباید نقض گردند و خراب شوند و اکثر آن‌ها به نرم‌افزار وابسته‌اند. باید آن‌ها را به صورت یک موضوع کلان و تمام نگریست. زبان  برنامه‌سازی و ابزارهای وابسته به آن صرفاً بخشی از این تمامیت هستند. باید راهی را پیدا کرد تا برنامه‌سازان و توسعه دهندگان نرم‌افزار را به شکل مناسب آموزش داد و این‌که به آن‌ها تاکید کنیم قابلیت اطمینان در نرم‌افزار تاچه حد اهمیت دارد.

 

 

برچسب‌ها:

زبان برنامه‌نویسی ,

برنامه‌نویسی ,

سی پلاس پلاس ,

کاربردهای زبان برنامه نویسی ,

programming ,

زبان برنامه نویسی C ,

Turbo C ,

Borland C ,

Microsoft C ,

+/C ,

طراحی سایت ,

آموزش برنامه نویسی ,

زبان‌های اسکریپتی ,

امنیت برنامه نویسی ,

اوژن استوار
نویسنده: اوژن استوار
متخصص دیجیتال مارکتینگ و کسب و کارهای آنلاین
موسس اولین ساختمان پزشکان آنلاین در ایران
مدیر مجموعه کسب و کارهای فریان
مشاهده رزومه

مطالب پیشین

لطفا برای ارسال نظرات و سوالات خود، ابتدا وارد سایت شوید.

اشتراک رایگان ماهنامه‌ی فریان آکادمی

تازه ها

اینستاگرام کسب و کار اینستاگرام کسب و کار
لطفا منتظر بمانید...