طراحی وب سایت, طراحی سایت, طراحی پرتال, طراحی وب, پرنیان وب

  • پرنیان وب : طراحی وب سایت , طراحی وب سایت داینامیک , طراحی وب سایت شرکتی , طراحی وب سایت شخصی , طراحی سایت , طراحی وب , طراحی پرتال

  • پرنیان وب : طراحی پرتال , بهینه سازی سایت و سئو , طراحی پورتال , طراحی پرتال شرکتی , طراحی پرتال سازمانی , افزایش رنکینگ وب سایت , طراحی وب سایت



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

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

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

تاریخچه زبان :

استراس‌تروپ کار بر روی زبان "C With Classes" را در سال ۱۹۷۹ آغاز کرد . ایده ساخت این زبان جدید در زمان کار بر روی تز دکترای خود به ذهن استراس‌تروپ خطور نمود . او متوجه شد که سیمولا دارای ویژگی‌های مناسب برای ساخت برنامه‌های بسیار بزرگ است اما برای استفاده عملی بسیار کند است اما BCPL با وجود سرعت بسیار زیاد برای ساخت برنامه‌های بزرگ بسیار سطح پایین است . زمانیکه استراس ‌تروپ کار خود را در آزمایشگاه‌های بل (Bell Labs) آغاز نمود با مشکل تحلیل هسته unix با توجه به محاسبات توزیع شده روبرو شده بود. با یادآوری تجربیات خود در دوران دکترا ، او زبان C را با استفاده از ویژگی‌های سیمولا گسترش داد . C به این دلیل انتخاب شد که C یک زبان عمومی ، سریع ، قابل حمل ، و بصورت گسترده در حال استفاده بود . علاوه بر C و سیمولا زبان‌های دیگری مانند ALGOL 68، ADA ، CLU ، ML نیز بر ساختار این زبان جدید اثر گذاشت . در ابتدا ویژگی‌های کلاس ، کلاس‌های مشتق شده ، کنترل نوع قوی ، توابع درون خطی ، و آرگومان پیش‌فرض از طریق CFront به C اضافه شد . اولین نسخه تجاری در سال ۱۹۸۵ ارائه شد.

در سال ۱۹۸۳ نام زبان از "C With Classes" به ++C تغییر یافت . ویژگی‌های دیگر شامل توابع مجازی ، سربارگزاری عملگر و نام تابع ، ارجاعات ، ثوابت ، کنترل حافظه توسط کاربر بصورت آزاد ، کنترل نوع بهتر ، و توضیحات یک خطی به صورت BCPL با استفاده از «//» نیز به آن اضافه شد . در سال ۱۹۸۵ اولین نسخه زبان برنامه‌نویسی ++C انتشار یافت و مرجع مهمی برای این زبان فراهم شد در حالی که هیچ استاندارد رسمی وجود نداشت . در سال ۱۹۸۹ ویرایش 2.0 از زبان ++C ارائه شد . ویژگی‌های جدیدی مانند ارث‌بری چندگانه ، کلاس‌های انتزاعی ، اعضای ایستای توایع ، اعضای ثابت تابع ، و اعضای حفاظت شده به آن اضافه شد . در سال ۱۹۹۰ «راهنمای مرجع ++C » منتشر شد . این کار بنیان استانداردهای بعدی شد . آخرین ویژگی‌های اضافه شده شامل موارد زیر بودند : قالب توابع ، استثناها ، فضاهای نام ، تبدیلات جدید ، و یک نوع داده منطقی. در حین تکامل ++C کتابخانه استاندارد نیز بوجود آمد . اولین نسخه کتاب استاندارد شامل کتابخانه جریانات I/O بود که جایگزین Printf و Scanf شد . در ادامه مهم‌ترین ویژگی اضافه شده Standard Template Library بوده ‌است.

استاندارد زبان :

بعد از سال‌ها کار کمیته مشترک ANSI–ISO در سال ۱۹۹۸ ++C را استاندارد نمودند (ISO/IEC 14882:1998) . به مدت چند سال پس از انتشار استاندارد این کمیته گزارشات معایب را مورد بررسی قرار داده نسخه اصلاح شده استاندارد ++C منتشر شد . در سال ۲۰۰۵ گزارشی فنی بنام "گزارش فنی کتابخانه " که معمولاً بصورت اختصار TR1 خوانده می‌شود انتشار یافت. با وجود این که گزارش بخشی رسمی از استاندارد نیست ولی بخش‌هایی را به آن اضافه نموده که انتظار می‌رود در نسخه‌های بعدی استاندارد در نظر گرفته شود. پشتیبانی از این گزارش در حال افزایش بین تمام کامپایلرهای فعلی است.

این نام منسوب به ریک ماسکیتی (اواسط ۱۹۸۳) است و برای اولین بار در دسامبر سال ۱۹۸۳ به کار برده شد. در طول مدت تحقیق این زبان بنام "C جدید" و بعدها "C With Classes"خوانده شد . در علوم کامپیوتر هنوز هم ++C به عنوان ابرساختار C شناخته می‌شود. آخرین نام از عملگر ++ در زبان C که برای افزایش مقدار متغیر به اندازه یک واحد بکار می‌رود و یک عرف معمول برای نشان دادن افزایش قابلیت‌ها توسط + ناشی گشته ‌است. با توجه به نقل قولی از استراس‌تروپ : "این نام ویژگی‌ ها تکاملی زبان در C را نشان می‌دهد" +C نام زبانی غیر مرتبط به این زبان است.

استراس‌تروپ مبدا این نام را در فصل اول کتاب خود "زبان برنامه‌نویسی ++C" اشاره می‌نماید که معنی دیگر ++C را می‌توان در ضمائم کتاب جرج ارول بنام ۱۹۸۴ یافت . در سه قسمت از زبان تخیلی Newspeak "کلمات C" برای اشاره به لغات فنی و حرفه‌ای بکار میرود. "دو علامت +" برای ایجاد صفات عالی از صفات Newspeak به کار می‌رفت بنابراین ++C به معنای زبانی با بیشترین شباهت به C است. وقتیکه به صورت خصوصی از ریک ماسکیتی در مورد این اسم سوال شد او در جواب گفت که این اسم بصورت خودمانی در بین آنها بکار می‌رفته ‌است و تصور نمی‌کردند که این نام بصورت نام رسمی این زبان درآید.

فلسفه :

در کتاب "طراحی و تکامل ++C" استراستروپ قوانین مورد استفاده در طراحی ++C را بیان می‌نماید . دانستن این قوانین به فهمیدن نحوه عملکرد ++C و چرایی آن کمک می‌کند . جزئیات بیشتر در کتاب قابل دسترسی است :

  1. ++C طراحی شده ‌است تا یک زبان عمومی با کنترل نوع ایستا و همانند C قابل حمل و پربازده باشد.
  2. ++C طراحی شده ‌است تا مستقیما و بصورت جامع از چندین شیوه برنامه‌نویسی یعنی : برنامه‌نویسی ساخت ‌یافته ، برنامه ‌نویسی شی ‌گرا ، انتزاع داده ، و برنامه ‌نویسی جنریک.
  3. ++C طراحی شده ‌است تا به برنامه‌نویس امکان انتخاب دهد حتی اگر این انتخاب اشتباه باشد.
  4. ++C طراحی شده ‌است تا حداکثر تطابق با C وجود داشته باشد و یک انتقال راحت از C را ممکن سازد.
  5. ++C از بکاربردن ویژگی‌های خاص که مانع از عمومی شدن است خودداری می‌نماید.
  6. ++C از ویژگی‌هایی که بکار برده نمی‌شوند استفاده نمی‌کند.
  7. ++C طراحی شده‌است تا بدون یک محیط پیچیده عمل نماید.

کتابخانه استاندارد :

در سال ۱۹۹۸ استاندارد ++C شامل دو بخش هسته زبان و کتابخانه استاندارد ++C است . این کتابخانه شامل بیشتر بخش‌های STL و کتابخانه استاندارد C است . بیشتر کتابخانه‌های ++C در استاندارد وجود ندارند و یا استفاده از تعریف قابلیت پیوند کتابخانه‌ها را میتوان در زبان‌هایی مانند فرترن ، C ، پاسکال ، بیسیک نوشته شوند. البته با توجه به ویژگی‌های کامپایلر مشخص خواهد شد که کدام زبان را می‌توان استفاده نمود . کتابخانه استاندارد ++C شامل کتابخانه استاندارد C با یک سری تغییرات برای بهبود عملکرد است. بخش بزرگ بعدی این کتابخانه STL است . STL شامل ابزار بسیار قدرتمندی مانند نگه‌دارنده‌ها (مانند vector و list) ، تکرارکننده‌ها (اشاره‌گرهای عمومی شده) برای شبیه‌سازی دسترسی مانند آرایه الگوریتم‌هایی برای جستجو و مرتب ‌سازی در آنها وجود دارند. نقشه‌ها (نقشه‌های چندگانه) (آرایه شرکت‌پذیر) و مجموعه‌ها (مجموعه‌های چندگانه) واسط‌های عمومی فراهم می‌سازند . در نتیجه با استفاده از قالب تابع ، الگوریتم‌های جنریک با هر نگه‌دارنده و دارای تکرارکننده عمل نماید. همانند C ویژگی‌های کتابخانه را می‌توان با استفاده از شبه دستور include# شامل یک سرآیند استاندارد اضافه نمود. C دارای ۶۹ کتابخانه استاندارد است که ۱۹ تا از آنها نامناسب تشخیص داده شده‌اند.

STL در آغاز محصولی جداگانه از HP و سپس SGL پیش از ادغام در کتابخانه استاندارد ++C بوده‌است . استاندارد عبارت STL را بکار نمی‌برد بلکه آن را بخشی از کتابخانه می‌داند اما مردم هنوز هم آن را برای جداسازی بخش‌های مختلف کتابخانه با این نام بکار می‌برند. بیشتر کامپایلرها کتابخانه استاندارد و STL را پیاده‌سازی می‌نماید . پیاده‌سازی‌های مستقلی نیز همانند STLport نیر وجود دارند. پروژه‌های دیگر نیز پیاده‌سازی‌های خود را از STL با توجه به اهداف خود بوجود می‌آورند.

ویژگی‌های معرفی شده در ++C :

در مقایسه با C زبان ++C ویژگی‌های جدیدی را معرفی نموده ‌است مانند تعریف متغیر به عنوان عبارت ، تغییر نوع‌های همانند تابع، New/Delete ، نوع داده Bool ، توابع درون‌خطی ، آرگومان پیشفرض ، گرانبارسازی عملگر و تابع ، فضای نام و عملگر تعیین حوزه ::، کلاس‌ها (شامل تمام ویژگی‌های مربوط به کلاس‌ها همانند وراثت ، اعضای تابع ، توابع مجازی ، کلاس‌های انتزاعی ، و سازنده‌ها) ، قالب‌ها ، پردازش استثنا ، کنترل نوع زمان اجرا ، عملگرهای سربار شده ورودی (<<) و خروجی (>>) . برخلاف باور عموم ++C نوع داده ثابت را معرفی ننموده ‌است . کلمه const کمی پیش از استفاده از این کلمه در ++C توسط زبان C بصورت رسمی بکار گرفته شد . در بعضی حالات ++C تعداد کنترل نوع بیشتری نسبت به زبان C انجام می‌دهد. توضیحات با استفاده از // قبل از زبان C در زبان BCPL معرفی شده بود که مجدداً در زبان ++C به کار گرفته شد. بعضی ویژگی‌های ++C بعدا توسط C به کار گرفته شد مانند نحوه تعریف for ، توضیحات به شکل ++C (با استفاده از //) ، و کلمه inline با وجود اینکه تعریف این کلمه در C با تعریف آن در زبان ++C هماهنگی ندارد . همچنین در C ویژگی‌هایی معرفی شده‌است که در ++C وجود ندارند مانند ماکروهای قابل تغییر و استفاده بهتر از آرایه‌ها به عنوان آرگومان. بعضی کامپایلرها این ویژگی‌ها را پیاده نموده‌اند اما در بقیه این ویژگی‌ها موجب ناهماهنگی میگردد.

چند ریختی :

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

چند ریختی ایستا :

چندریختی ایستا شامل گرانبارسازی تابع ، گرانبارسازی عملگر ، آرگومان پیش‌فرض ، و قالب کلاس‌ها و تابع است.

گرانبارسازی تابع :

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

گرانبارسازی عملگر :

بطور مشابه گرانبارسازی عملگر امکان استفاده از یک عملگر مشخص می‌شود که عملکرد متفاوتی با توجه به عملوندهای خود دارد. این عملگرهای گرانبار شده موجب فراخوانی تابع مشخصی متناسب با آن موقعیت می‌گردند. گرانبارسازی عملگر ترتیب اجرا یا تعداد عملوندهای یک عملگر را تغییر نمی‌دهد. عملگرهای . :: .* ? نمی‌توانند گرانبار شوند.

محیط ‌های برنامه نویسی :

یک برنامه به زبان ++C می‌تواند در محیط‌های ++Turbo C++ , Borland C++ , Dev C در ویندوز و GCC در لینوکس نوشته شود. این محیط‌های برنامه‌نویسی ، همراه با یک کمپایلر عرضه می‌شوند که کار تبدیل برنامه به فایل اجرایی را راحت می‌کند.

-


  • تعداد بازدید: 2621
  • تاریخ انتشار: چهارشنبه 15 دی 1389 ساعت 23:18


طراحی سایت, طراحی وب سایت, طراحی پرتال, طراحی پورتال, طراحی سایت داینامیک, افزایش رنکینگ وب سایت, بهینه سازی وب سایت, طراحی سایت شرکتی, طراحی پرتال سازمانی