شريط الأخبار

لغة البرمجة C: تاريخها المهم ولماذا ترفض الابتعاد

مثل معظم الابتكارات ، خضعت لغة البرمجة C للعديد من التغييرات بمرور الوقت ، ولكن حتى موجات التكنولوجيا القوية مثل IoT والذكاء الاصطناعي والأتمتة فشلت في إزاحة C من موقعها البارز.
لغة C من أهم لغات البرمجة في تاريخ الحوسبة. اليوم ، ظهرت العديد من لغات البرمجة المختلفة التي تقدم العديد من الميزات المختلفة ، ولكن من نواح كثيرة ، وفرت لغة C الأساس لمثل هذه اللغات.

ولد C بدافع الضرورة.

من غير الواضح ما إذا كان منشئوها قد تصوروا الأشياء العظيمة التي سيواصل C تحقيقها. مثل معظم الابتكارات ، خضع C للعديد من التغييرات بمرور الوقت. ربما كان أحد أعظم إنجازاته هو قدرته على البقاء على صلة حتى في العصر الحديث والديناميكي.

يجب أن يكون مُرضيًا لمنشئي C أن يلاحظوا أن إبداعهم لا يعتبر قديمًا أو مصنفًا على أنه مفيد لعدد قليل فقط من المجالات المتخصصة. بدلاً من ذلك ، تم التعرف على لغة C كلغة قوية للأغراض العامة ويمكن تطبيقها في العديد من المجالات. (اقرأ أيضًا: مباشرة من خبراء البرمجة: ما هي لغة البرمجة الوظيفية الأفضل لتتعلمها الآن ؟.)

بدايات سي
لم يكن تطوير C في الأصل هدف مؤسسيها. في الواقع ، خلقت الظروف والمشاكل المختلفة الوضع المثالي لإنشائها. في الستينيات من القرن الماضي ، كان دينيس ريتشي ، الذي كان موظفًا في مختبرات نوكيا بيل (AT&T) ، جنبًا إلى جنب مع بعض زملائه ، يعملون على تطوير نظام تشغيل يمكن استخدامه من قبل العديد من المستخدمين في وقت واحد.

كان نظام التشغيل هذا معروفًا باسم Multics ، وكان من المفترض أن يسمح للعديد من المستخدمين بمشاركة موارد الحوسبة المشتركة. عرضت Multics العديد من الفوائد ولكن لديها أيضًا العديد من المشاكل. لقد كان نظامًا كبيرًا ويبدو – من منظور التكلفة والفائدة – أن التكاليف تفوق الفوائد. تدريجيا ، انسحبت Bell Labs من المشروع.

وذلك عندما انضم ريتشي إلى كين طومسون وبريان كيرنيغان في مشروع آخر. تضمن المشروع تطوير نظام ملفات جديد. طور Thompson نظام ملفات جديدًا للكمبيوتر العملاق DEC PDP-7 بلغة التجميع.

بعد ذلك ، قام منشئو نظام الملفات بإجراء العديد من التحسينات عليه ، مما أدى إلى ولادة نظام التشغيل UNIX. حتى أصل اسم UNIX يمكن إرجاعه إلى سابقه ، Multics. في الأصل ، كان الاسم Unics (خدمة المعلومات والحوسبة أحادية الإرسال) باعتباره تورية على Multics (المعلومات المتعددة وخدمات الكمبيوتر).

في وقت لاحق ، تم تغيير Unics إلى UNIX. تمت كتابة UNIX بلغة التجميع التي ، على الرغم من كونها مثالية للتعلم الآلي ، كانت اقتراحًا صعبًا للبشر. (ما هو التعلم الآلي؟ اكتشف ذلك من خلال قراءة التعلم الآلي 101.)

لتفسير وتشغيل UNIX ، تم استخدام اللغات Fortran و B. من هنا بدأت فكرة تطوير لغة سي تتشكل في أذهان مبتكريها.

تحقق من مخطط المعلومات الرسومي هذا الذي يفصل تاريخ لغات البرمجة.

لغات البرمجة

لماذا تم تطوير C
كانت لغة B مفيدة في سياق التحديات التي واجهها مبتكرو UNIX مع نظام التشغيل. تم أخذ اللغة B من BCPL بواسطة Martin Richards. كما ذكرنا سابقًا ، تمت كتابة UNIX بلغة التجميع. لأداء حتى عمليات صغيرة في UNIX ، يحتاج المرء إلى كتابة العديد من صفحات التعليمات البرمجية.

حل ب هذه المشكلة. على عكس لغة التجميع ، احتاجت B إلى عدد أقل من سطور التعليمات البرمجية لتنفيذ مهمة في UNIX. ومع ذلك ، كان هناك الكثير الذي لم يستطع “ب” فعله. كان من المتوقع الكثير من “ب” في سياق المتطلبات المتغيرة بسرعة.

على سبيل المثال ، لم يتعرف B على أنواع البيانات. حتى مع B ، تم التعبير عن أنواع البيانات بلغة الآلة. لم يدعم B أيضًا هياكل البيانات.

كان من الواضح أن شيئا ما يجب أن يتغير. لذلك ، شرع ريتشي وزملاؤه في التغلب على القيود. تم تطوير لغة C في 1971-1973. لاحظ أنه على الرغم من جميع قيودها ، فإن C تدين بميلادها إلى B لأن C احتفظت بالكثير مما قدمته B ، مع إضافة ميزات مثل أنواع البيانات وهياكل البيانات.

تم اختيار الاسم C لأنه نجح في B. في أيامه الأولى ، تم تصميم C مع وضع UNIX في الاعتبار. تم استخدام C لأداء المهام وتشغيل UNIX. لذلك ، مع مراعاة الأداء والإنتاجية ، تمت إعادة كتابة العديد من مكونات UNIX بلغة C من لغة التجميع. على سبيل المثال ، تمت إعادة كتابة نواة UNIX نفسها في عام 1973 على DEC PDP-11.

وثق ريتشي وكيرنيغان إنشائهما في شكل كتاب بعنوان “لغة البرمجة سي”. على الرغم من ادعاء Kernighan أنه لم يكن له دور في تصميم C ، إلا أنه كان مؤلف برنامج “Hello World” الشهير والعديد من برامج UNIX الأخرى.

تطور C.
بمرور الوقت ، بدأ استخدام لغة C في أجهزة الكمبيوتر الشخصية لتطوير تطبيقات البرامج وأغراض أخرى.

جاء التغيير الأول (حتى لو كان قليلاً)

عندما شكل المعهد الوطني الأمريكي للمعايير (ANSI) لجنة في عام 1983 لتوحيد المعايير C. بعد مراجعة اللغة ، قاموا بتعديلها قليلاً بحيث كانت متوافقة أيضًا مع البرامج الأخرى التي سبقت C. يجري في عام 1989 ، والمعروف باسم ANSI C أو C89. كما ساهمت المنظمة الدولية للتوحيد القياسي (ISO) في توحيد معايير C.

بمرور الوقت ، تطورت لغة C حيث أضافت بعض الميزات المهمة مثل إدارة الذاكرة والوظائف والفئات والمكتبات إلى مجموعة ميزاتها الغنية. يتم استخدام لغة C في بعض أكبر وأبرز المشاريع والمنتجات في العالم.

أثرت C أيضًا على تطوير العديد من اللغات مثل AMPL و AWK و csh و C ++ و C– و C # و Objective-C و Bit C و D و Go و Java و JavaScript و Julia و Limbo و LPC و Perl و PHP و بايك ، معالجة ، بايثون ، صدأ ، Seed7 ، Vala و Verilog. (لمعرفة المزيد حول اللغات ، راجع لغات البرمجة الخمس التي أنشأت الإنترنت.)

هل تستخدم Microsoft Windows؟ ثم عليك أن تشكر C ، لأن تطوير Windows في الغالب في C. وينطبق الشيء نفسه على MacOS و Linux و Android و iOS و Windows Phone أيضًا ، لذلك تعتمد جميع أنظمة التشغيل الحديثة تقريبًا على C. كما أنها تستخدم على نطاق واسع في أنظمة ، مثل تلك الموجودة في المركبات وأجهزة التلفزيون الذكية وأجهزة إنترنت الأشياء (IoT) التي لا حصر لها. (اقرأ تأثير إنترنت الأشياء (IoT) على الصناعات المختلفة.)

جميع تطبيقات C كثيرة جدًا بحيث لا يمكن إدراجها هنا ، لكن البعض الآخر يشمل:

تطوير المجمعين وقواعد البيانات وجداول البيانات
ألعاب الكمبيوتر والجوال
تحديث نواة UNIX
تقييم المعادلات الرياضية
تصميم أجهزة الشبكة
ما تعلمناه
تمامًا مثل معظم أعظم الاختراعات في العالم ، وُلدت لغة C بدافع الضرورة. كانت الظروف والمشاكل مصدر الإلهام. ومع ذلك ، على عكس العديد من لغات البرمجة التي انقرضت الآن أو شبه منقرضة ، صمدت لغة C أمام اختبار الزمن وازدهرت.

يتم الآن تصنيف بعض اللغات على أنها لغات متخصصة – على سبيل المثال ، تُستخدم لغة Fortran الآن في الغالب للأغراض الهندسية فقط وتكافح COBOL للبقاء على صلة. لم تظل لغة C مناسبة فحسب ، بل قدمت أيضًا مصدر إلهام لتطوير العديد من لغات البرمجة الأخرى.

حتى موجات التكنولوجيا القوية مثل إنترنت الأشياء والذكاء الاصطناعي والأتمتة فشلت في إزاحة C من موقعها البارز. يبدو أن هذه اللغة ستظل معنا لفترة طويلة في المستقبل أيضًا.

مواضيع ذات صلة

التعليقات مغلقة.

Developed By: HishamDalal@gmail.com