جلسه اول
مــــــقدمه
تاريخچه C و ++C
زبان C++ توسعه يافته زبان C است که از دو زبان برنامهنويسي قبلي، بنامهاي BCPL و B منشعب شده است. زبان BCPL در سال 1967 توسط Martin Richards بعنوان زباني براي نوشتن نرمافزار سيستمهاي عامل و کامپايلرها طراحي شده بود.آقاي Ken Thompson بسياري از ويژگيهاي زبان B خود را از BCPL اقتباس کرد و از B براي ايجاد نسخههاي اوليه سيستم عامل UNIX در آزمايشگاهاي Bell در سال 1970 بر کامپيوتر DEC PDP-7 استفاده شد. هر دو زبان BCPL و B از نوع زبانهاي بدون نوع (typeless) هستند، به اين معني که هر ايتم داده يک "کلمه" در حافظه اشغال ميکند و مسئوليت رسيدگي به دادها به عهده برنامه نويس خواهد بود.
زبان C از زبان B و توسط Dennis Ritchie در آزمايشگاهاي شرکت Bell توسعه يافت و براي اولين بار بر روي کامپيوتر DEC PDP-11 در سال 1972 پياده سازي گرديد. زبان C از مفاهيم اساسي BCPL و B سود ميبرد در حاليکه داراي قابليت تعريف نوع داده (data type) و ويژگيهاي ديگر بود. زبان C در بدو شروع بکار بطور گستردهاي بعنوان زبان توسعهدهنده سيستم عامل UNIX بکار گرفته شد. امروزه، اکثر سيستمهاي عامل توسط زبانهاي C يا C++ يا ترکيبي از هر دو نوشته شدهاند. هم اکنون C بر روي بيشتر کامپيوتر پيدا ميشود. زبان C، زبان مستقل از سختافزار است. اگر در زمان طراحي دقت کافي بخرج داده شود، ميتوان برنامههاي C را که از قابليت حمل (portable) برخودار هستند بر روي اکثر کامپيوترها به اجرا در آورد.
در اواخر دهه 1970، زبان C توسعه پيدا کرد و بنامهاي "C تجاري"،"C کلاسيک"، و "Keringhan and Ritchie C" معروف شد. کتاب "زبان برنامهنويسي C" که توسط انتشارات Prentice-Hall در سال 1978 منتشر شد تاثير بسيار زيادي در گسترش اين زبان بازي کرد.
بکارگيري زبان C بر روي مجموعه وسيعي از انواع کامپيوترها (گاهي اوقات از اين مطلب بعنوان platform ياد ميشود) موجب شده تا نسخههاي متعدي از آن بوجود آيد (متاسفانه). با اينکه اين نسخهها شبيه هم بودند، اما گاهي اوقات عدم سازگاري مابين آنها رخ ميداد. اين عدم سازگاري يکي از جديترين مشکلات برنامهنويساني بود که ميخواستند برنامههاي قابل حملي بنويسند که بر روي چندين پلاتفرم به اجرا درآيد. در چنين وضعيتي وجود يک نسخه استاندارد C احساس گرديد. در سال 1983، کميته استاندارد X3J11 که تحت نظارت کميته ملي استاندارد کامپيوتر و پردازش اطلاعات آمريکا (ANSCIP)[1]
بوجود آمده بود، يک تعريف غير مبهم از زبان مستقل از ماشين ارائه کرد. در سال 1989، استاندارد رشد پيدا کرده بود و ANSI با همراهي ISO[2]
زبان C را در سرتاسر جهان استاندارد کردند. مستند استاندارد در سال 1990 منتشر شد و از آن بعنوان ANSI/ISO 9899:1990 ياد ميشود. ويرايش دوم کتاب "زبان برنامهنويسي C" در سال 1988، چاپ و به نام ANSI C، ناميده شد که هم اکنون در سرتاسر جهان بکار گرفته ميشود.
قابليت حمل:
بدليل اينکه زبان ++C استاندارد شده است، مستقل از سخت افزار است و بطرز گسترده اي در دسترس مي باشد، غالبا برنامههاي نوشته شده به زبان C++را ميتوان با کمي اصلاح و حتي بدون هيچ گونه تغييري، بر روي انواع مختلفي از سيستمهاي کامپيوتري به اجرا در آورد.
زبانC++ بسط يافته زبان C است،که توسط Bjarne Stroustryp در اوايل 1980 و در آزمايشگاههاي Bell ابداع گرديد. زبان C++ حاوي برخي از ويژگيهاي C است، اما مهمترين ويژگي و قابليت اين زبان در برنامهنويسي شيگرا بودن آن است.
اين ويژگي، انقلابي در جامعه نرمافزاري بوجود آورد. در چنين حالتي توليد نرمافزار بسرعت، با دقت و اقتصاديتر صورت ميگيرد. شيها کامپونتهاي نرمافزاري با قابليت استفاده مجدد هستند که ايتمهاي حقيقي در دنيا را مدل سازي ميکنند. توسعه دهندهگان نرمافزار به اين نتيجه رسيدهاند که بهره گيري از روش مدولار و طراحي شيگرا و پياده سازي به اين روشها ميتواند در بهرهوري گروههاي توسعهدهنده نرمافزاري در مقايسه با تکنيکهاي متداول قديميتر، همانند برنامهنويسي ساختيافته بسيار موثر باشد. درک برنامههاي شيگرا، اصلاح و تغيير آنها راحتر است.
زبانهاي شيگراي متعددي تا بدين روز پديد آمدهاند، زبانهاي همانند Smalltalk، که توسط PARC[3]
ابداع شده است. زبان Smalltalk يک زبان شيگراي محض است، که هر چيزي در آن يک شي ميباشد. از سوي ديگر c++ از جمله زبانهاي هيبريد ميباشد، به اين معني که ميتوان در اين زبان برنامهاي نوشت که شبيه C يا شيگرا باشد، يا اينکه ترکيبي از هر دو حالت را در بر گيرد.