|
التطور
التاريخي للغة سي
:
ولدت لغة سي
ونشأت وترعرعت في أحضان نظام يونيكس
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-
التعددية الشكلية :-
إن دالة الرسم واحدة ، و لكن
أطوارها متعددة بحسب نوع الفصيلة . و هذا هو أحد المبادئ الاقتصادية في لغة سي++
لتوفير الوقت و الجهد : استخدام نفس الدالة لتحقيق مهام مختلفة .
أخذ هذا الموضوع من
1.
كتاب تعلم سي++ في 24 ساعة
2.
البرمجة بلغة سي .
|