یک برنامه مجموعه ای از دستورات است که توسط کامپیوتر اجرا میگردد ، برنامه نویسان برای نوشتن این دستورات از زبانهای برنامه نویسی استفاده میکنند ، برخی از این زبانها مسقیما قابل فهم توسط کامپیوتر بوده و برخی نیاز به ترجمه دارند . زبانهای برنامه نویسی را میتوان به سه دسته تقسیم نمود :
1 - زبانهای ماشین
2 - زبانهای اسمبلی
3 - زبانهای سطح بالا
زبانهای ماشین :
زبانی که مستقیما و بدون نیاز به ترجمه قابل فهم توسط کامپیوتر میباشد . هر پردازنده یا processor زبان خاص خود را دارد !... در نتیجه تنوع زبان ماشین بستگی به انواع پردازندههای موجود دارد و اگر دو کامپیوتر دارای پردازندههای یکسان نباشتد ، زبان ماشین آنها با یکدیگر متفاوت و غیر قابل فهم برای دیگری میباشد . زبان ماشین وابسته به ماشین یا Machine independent میباشد . تمامی دستورات در این زبان توالی از 0 و 1 میباشند . برنامههای اولیه را با این زبان مینوشتند در نتیجه نوشتن برنامه سخت و احتمال خطا داشتن در آن زیاد بود . ار آنجا که نوشتن برنامه به این زبان سخت و فهم برنامههای نوشته شده به آن دشوار بود ، برنامه نویسان به فکر استفاده از حروف بجای دستورات زبان ماشین افتادند ( پیدایش زبان اسمبلی )
زبانهای اسمبلی :
به زبانی که دستورات زبان ماشین را با نمادهای حرفی بیان میکند، زبان اسمبلی (Assembley Language) میگویند . چون این زبان مستقیما قابل فهم برای کامپیوتر نیست باید قبل از اجرا آن را به زبان ماشین ترجمه کرد ، به این مترجم اسمبلر گفته میشود . برنامههای نوشته شده به این زبان قابل فهم برای برنامه نویس بود اما از آنجا که به ازای هر دستور زبان ماشین یک دستور زبان اسمبلی داشتیم از حجم برنامهها کاسته نشد ! .. بعلاوه چون زبان اسمبلی همانند زبان ماشین از دستورات پایه ای و سطح پایین استفاده میکرد نوشتن برنامه با این زبان هم سخت و مشکل بود . لذا اهل خرد به فکر ابداع نسلی از زبانهای بهتر بودند (پیدایش زبانهای سطح بالا)
زبانهای سطح بالا :
زبانهای سطح بالا قابل فهم بودند و این امکان را داشتند تا چند دستور زبان ماشین یا اسمبلی را بتوان در قالب یک دستور نوشت ( منظور توابع کتابخانه ای در ++C/C) . پس هم فهم ، هم نوشتن برنامه در این زبانها راحت و هم تعداد خطوط کد کمتر شد . این زبانها به زبانهای برنامه نویسی سطح بالا یا High-Level Programming Language معروفند . البته برنامه نوشته شده در این زبان نیز برای کامپیوتر قابل فهم نبوده و باید به زبان ماشین ترجمه شوند ، این وظیفه بر عهده کامپایلر میباشد . اولین زبانهای برنامه نویسی سطح بالا مانند FORTRAN ، COBOL ، PASCAL و C میباشند . زبان برنامه نویسی ++C تکامل یافته زبان C میباشد .
هر یک از زبانهای برنامه نویسی سطح بالا یک روش برنامه نویسی را پشتیبانی میکند به طور مثال زبان C و PASCAL از روشهای برنامه نویسی ساخت یافته ای و پیمانه ای و زبانهای مانند ++C و JAVA از روش برنامه سازی شی گرا یا Object Oriented Programming یا به اختصار (OOP) استفاده میکنند . زبان ++C چون زبان C را بطور کامل در بر دارد پس از هر سه روش برنامه نویسی ساخت یافته و پیمانه ای و شی گرا استفاده میکند .
تا اینجا با تاریخچه ای از زبانها و مراحل تکامل آنها آشنا شدیم . حال ویژگیها و دلایل استفاده از زبان ++C را مرور میکنیم :
زبان C در سال 1972 توسط دنیس ریچی طراحی شد . زبان C تکامل یافته زبان BCPL است که طراح آن مارتین ریچاردز میباشد ، زبان BCPL نیز از زبان B مشتق شده است که طراح آن کن تامسون بود . (خداوند روح دنیس ریچی را همچون هوگو چاوز با مسیح بازگرداند ! ...) .
از این زبان برای نوشتن برنامههای سیستمی ، همچون سیستم عامل ، کامپایلر ، مفسر ، ویرایشگر ، برنامههای مدیریت بانک اطلاعاتی ، اسمبلر استفاده میکنند .
زبان C برای اجرای بسیاری از دستوراتش از توابع کتابخانه ای استفاده میکند و بیشتر خصوصیات وابسته به سخت افزار را به این توابع واگذار میکند لذا نرم افزار تولید شده با این زبان به سخت افزار خاصی بستگی ندارد و با اندکی تغییرات میتوانیم نرم افزار مورد نظر را روی ماشینهای متفاوت اجرا کنیم ، در نتیجه برنامه نوشته شده با C قابلیت انتقال (Portability) دارند . بعلاوه کاربر میتواند توابع کتابخانه ای خاص خودش را بنویسد و از آنها در برنامه هایش استفاده کند .
برنامههای مقصدی که توسط کامپیلرهای C ساخته میشود بسیار فشرده و کم حجمتر از برنامههای مشابه در سایر زبانهاست ، این امر باعث افزایش سرعت اجرای آنها میشود .
++C که از نسل C است تمام ویژگیهای ذکر شده بالا را دارد ، علاوه بر آن شی گرا نیز میباشد . برنامههای شی گرا منظم و ساخت یافته اند و قابل آپدیت هستند و به سهولت تغییر و بهبود مییابند و قابلیت اطمینان و پایداری بیشتری دارند .
تحلیل اولین پروژه :
در اولین پروژه کد فوق را بکار بردیم ، حال به شرح دستورات آن میپردازیم .
#include <iostream>
int main() { return 0; }
std::cout<<"Hello world ...\n";
در زبان ++C هر دستور به ; (سیموکالن) ختم میشود .