" تعتبر لغة سي الآن ، من أشهر اللغات ، وأكثرها انتشاراً في الدول المتقدمة ، وبدأ المبرمجون ، من كافة الاختصاصات يكتبون برامجهم بها.. في هذا الموضوع سيتم تسليط الضوء وإعطاء نظرة عامة على لغة C++ ".
نظرة عامة على لغة سي ++
التطور التاريخي للغة سي :
ولدت لغة سي ونشأت وترعرعت في أحضان نظام يونيكس UNIX ، الذي صُمم في مختبرات شركة AT&T الأمريكية .
كتب نظام يونيكس أول ما كتب ، بلغة التجميع Assembly لأجهزة PDP-7 ، ثم طوره الباحثان ثومبسون Thompson وريتشي Ritchie ليناسب أجهزة PDP-11 الأكثر تطوراً . وقد فضلت شركة Bell الأمريكية ، وغيرها من الشركات ، نظام يونيكس ، بسبب أنه قابل للنقل ، بين أنظمة التشغيل المختلفة (Portable) ، على عكس لغة التجميع المرتبطة بالمعالجات الدقيقة ، وغير القابلة للنقل .
في الوقت نفسه ، كان ثومبسون نفسه يطور بعض لغات البرمجة ، التي تناسب أنظمة تشغيل مختلفة ، ومن هذه اللغات : لغة ( Basic Combined Programming) BCPL التي صممها مارتن ريتشاردز Martin Richards في كامبردج عام 1967، وهذه اللغة ، كانت قد انبثقت من لغة أخرى هي (Combined Programming Language ) CPL ، التي صممت في جامعة لندن في حوالي عام 1960م . وهذه الأخيرة ، استعارت بعض تعليماتها من لغة الجول 60 ( AGOL 60) . قام بعد ذلك ثومبسون بتطوير BCPL ، وسماها لغة B فقط . ومن الجدير بالذكر ، أن جميع هذه اللغات المذكورة آنفاً ، تعتبر كلغة التجميع ، لغات للآلة Machine Languages .
بعد ذلك ، قام ريتشي ، فأخذ من B أحسن تعليماتها ، وغير في كثير من قيودها ، وأضاف إليها تعليمات أخرى جديدة ، مثل أنواع المعطيات ، ومواصفات التخزين ، وجعل منها لغة برمجة Software language كما هي لغة للآلة وسماها لغة C ( وهو حرف أبجدي متقدم عن الحرف B ) ، فولدت بذلك لغة سي عام 1972م ، على يد ريتشي نفسه ، في مختبرات AT&T الأمريكية .
وقد تطورت لغة سي ، بعد ذلك تطورات سريعة ، وأصبحت من أكثر لغات البرمجة شعبية وإقبالاً ، وذلك لسببين رئيسيين هما :
الأول : مرونة لغة سي ، فهي تصلح لكافة التطبيقات ، وتعطي المبرمج حرية التصرف ، على مستوى البرمجيات software أو الأجهزةhardware .
الثاني : شعبية وانتشار نظام يونيكس ، كنظام تشغيل يكتب بلغة سي ، فهي تدعم نظام يونيكس ، وهو يدعمها .
وتعتبر لغة سي الآن ، من أشهر اللغات ، وأكثرها انتشاراً في الدول المتقدمة ، وبدأ المبرمجون ، من كافة الاختصاصات يكتبون برامجهم بها ، وعلى سبيل المثال ، لا الحصر ، ظهر كتاب [ برامج المايكرو كمبيوتر للمهندسين الكيميائيين ] عام 1987م عن دار ماجرو هيل الأمريكية ، مكتوباً من ألفه إلى يائه بلغة سي ، ومعنى ذلك أنه يفترض أن جميع المهندسين الكيميائيين في أمريكا يفهمون لغة سي ، ويتعاملون بها .
و بعد ذلك قام بيورن ستروستروب Stroustrup بتطوير C . و هي الأكثر شعبية في الحقل البرمجي كي توائم البرمجة الكائنية بعد انتشار التحليل و التصميم الكائني . ثم أبتكر C++ ، و في أقل من عقد انطلقت من نطاق مبرمجي AT&T لتصبح لغة البرمجة المفضلة لدى المبرمجين المحترفين .
إن C++ هي إطار موسع للغة C و يمكن القول أن كل برنامج C يعتبر برنامج شرعيا بلغة C++ . و لكن لا تركن لهذا الأمر فالوثبة من C إلى C++ أكبر مما يبدو .
أفادت سي ++ و لعدة سنوات من علاقتها بلغة C ، إذ استطاع كثير من مبرمجين C استعمال C++ بسهولة ، علما أن معظم المبرمجين رأوا أنهم مضطرين للتخلي عن كثير من المفاهيم السابقة و اعتماد رؤية أخرى لحل مشاكل البرمجة إن هم رغبوا في الاضطلاع بهذه اللغة .
C++ و البرمجة الكائنية :-
تدعم لغة C++ المقومات الأربعة للبرمجة الكائنية . التغليف أو الكبسلة ، إخفاء البيانات ، الوراثة و تعددية الأشكال .
1- التغليف و إخفاء البيانات :-
تدعم C++ صفة التغليف و إخفاء البيانات عبر إنشاء أنواع جديدة تسمى بالصفوف Classes و من ثم يقوم الصف المحدد بالعمل ككائن مغلف تماما و يستعمل كوحدة متكاملة بحيث يبقى عمله الداخلي مستورا و لا يحتاج المستعمل إلى فهم هذا العمل المخبأ ، ينبغي أن يعرف كيفية استعماله فقط .
2- الوراثة و إعادة الاستعمال :-
توفر C++ دعما فعالا لإعادة الاستعمال من خلال الوراثة inheritance. يمكن إعلان نموذج جديد يكون امتدادا لصف موجود و اشتقاقا منه . و نسمي الصف الجديد صفا مشتقا أحيانا .
3- التعددية الشكلية :-
إن دالة الرسم واحدة ، و لكن أطوارها متعددة بحسب نوع الفصيلة . و هذا هو أحد المبادئ الاقتصادية في لغة سي++ لتوفير الوقت و الجهد : استخدام نفس الدالة لتحقيق مهام مختلفة .