تاريخ لغات البرمجة

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

كانت لغة البرمجة Plankalkül أول لغة برمجة عالية المستوى ، وقد ابتكرها كونراد تسوزه بين عامي 1942 و1945. [ 2 ] أما أول لغة برمجة عالية المستوى مزودة بمترجم، فقد ابتكرها كورادو بوم عام 1951، كجزء من أطروحته للدكتوراه . [ 3 ] وكانت لغة FORTRAN (ترجمة الصيغ) أول لغة متاحة تجاريًا ، وقد طُوّرت عام 1956 (ظهر أول دليل استخدام لها عام 1956، ولكن طُوّرت لأول مرة عام 1954) من قِبل فريق بقيادة جون باكوس في شركة IBM .

التاريخ المبكر

خلال الفترة من 1842 إلى 1849، قامت آدا لوفليس بترجمة مذكرات عالم الرياضيات الإيطالي لويجي مينابريا حول أحدث آلة اقترحها تشارلز باباج : المحرك التحليلي ؛ وأكملت المذكرات بملاحظات حددت بالتفصيل طريقة لحساب أعداد برنولي باستخدام المحرك، وهو ما يعتبره معظم المؤرخين أول برنامج حاسوبي منشور في العالم. [ 4 ]

تم تصميم كل من أنوال جاكارد ومحرك الفرق لتشارلز باباج لاستخدام البطاقات المثقبة ، [ 5 ] [ 6 ] والتي من شأنها أن تصف تسلسل العمليات التي يجب أن تقوم بها آلاتها القابلة للبرمجة.

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

لغات البرمجة الأولى

في أربعينيات القرن العشرين، تم ابتكار أولى الحواسيب الحديثة التي تعمل بالكهرباء. أجبرت السرعة المحدودة وسعة الذاكرة المحدودة المبرمجين على كتابة برامج بلغة التجميع يدوياً . وفي نهاية المطاف، أُدرك أن البرمجة بلغة التجميع تتطلب جهداً فكرياً كبيراً.

كان أحد المقترحات المبكرة للغة برمجة عالية المستوى هو Plankalkül ، الذي طوره كونراد تسوزه لجهاز الكمبيوتر Z1 الخاص به بين عامي 1942 و1945، ولكن لم يتم تنفيذه في ذلك الوقت. [ 7 ]

كُتبت أولى لغات البرمجة العملية المصممة لتوصيل التعليمات إلى الحاسوب في أوائل خمسينيات القرن العشرين. وكانت لغة "الرمز المختصر" لجون موشلي ، التي طُرحت عام ١٩٤٩، من أوائل لغات البرمجة عالية المستوى التي طُوّرت للحاسوب الإلكتروني . [ ٨ ] وعلى عكس لغة الآلة ، مثّلت عبارات "الرمز المختصر" التعبيرات الرياضية بصيغة مفهومة. مع ذلك، كان لا بد من ترجمة البرنامج إلى لغة الآلة في كل مرة يُنفّذ فيها، مما جعل العملية أبطأ بكثير من تشغيل لغة الآلة المكافئة.

في أوائل خمسينيات القرن العشرين، طوّر أليك غليني لغة البرمجة "أوتوكود "، التي يُحتمل أنها أول لغة برمجة مُجمّعة، في جامعة مانشستر . وفي عام ١٩٥٤، طُوّرت نسخة ثانية من اللغة، عُرفت باسم "مارك ١ أوتوكود"، لجهاز مارك ١ على يد آر. إيه. بروكر . كما طوّر بروكر، بالتعاون مع جامعة مانشستر، لغة أوتوكود لجهاز فيرانتي ميركوري في خمسينيات القرن العشرين. وفي عام ١٩٦١ ، ابتكر دوغلاس هارتري من مختبر الرياضيات بجامعة كامبريدج نسخةً لجهاز إيدساك ٢. عُرفت هذه النسخة باسم إيدساك ٢ أوتوكود، وكانت تطويرًا مباشرًا للغة ميركوري أوتوكود، مع تكييفها لتناسب الظروف المحلية، واشتهرت بتحسينها لرمز الكائن وتشخيصها للغة المصدر، والتي كانت متقدمةً في ذلك الوقت. وفي سياقٍ مُعاصرٍ ولكن مُنفصل، طُوّرت لغة أطلس أوتوكود لجهاز أطلس ١ التابع لجامعة مانشستر .

في عام 1954، تم ابتكار لغة فورتران في شركة آي بي إم على يد فريق بقيادة جون باكوس ؛ وكانت أول لغة برمجة عامة الأغراض عالية المستوى واسعة الانتشار ذات تطبيق عملي، على عكس كونها مجرد تصميم نظري. [ 9 ] [ 10 ] عند ظهور فورتران لأول مرة، قوبلت بشكوك بسبب الأخطاء البرمجية، والتأخير في التطوير، والكفاءة النسبية للبرامج المكتوبة يدويًا بلغة التجميع. [ 11 ] مع ذلك، وفي سوق الأجهزة الذي كان يشهد تطورًا سريعًا، اشتهرت اللغة بكفاءتها. ولا تزال لغة شائعة في مجال الحوسبة عالية الأداء [ 12 ] ، وتُستخدم في برامج قياس وتصنيف أسرع 500 حاسوب فائق في العالم . [ 13 ]

ابتكرت غريس هوبر في الولايات المتحدة لغة برمجة مبكرة أخرى، أطلقت عليها اسم FLOW-MATIC . طُوّرت هذه اللغة لجهاز UNIVAC I في شركة ريمنجتون راند خلال الفترة من عام 1955 إلى عام 1959. لاحظت هوبر أن عملاء معالجة بيانات الأعمال لم يكونوا مرتاحين للرموز الرياضية ، وفي أوائل عام 1955، كتبت هي وفريقها مواصفات لغة برمجة باللغة الإنجليزية ونفذوا نموذجًا أوليًا لها. [ 14 ] أصبح مُترجم FLOW-MATIC متاحًا للجمهور في أوائل عام 1958، واكتمل تطويره بشكل كبير في عام 1959. [ 15 ] كان لـ FLOW-MATIC تأثير كبير في تصميم لغة COBOL ، حيث كانت هي ولغة AIMACO، وهي اللغة المنحدرة منها مباشرة، اللغتين الوحيدتين المستخدمتين في ذلك الوقت. [ 16 ]

من بين اللغات الأخرى التي لا تزال مستخدمة حتى اليوم لغة ليسب (1958)، التي ابتكرها جون مكارثي ، ولغة كوبول (1960)، التي طورتها لجنة المدى القصير. ومن الإنجازات البارزة الأخرى في أواخر الخمسينيات من القرن الماضي، نشر لجنة من علماء الحاسوب الأمريكيين والأوروبيين "لغة جديدة للخوارزميات"؛ تقرير ALGOL 60 ( لغة ALGO الحسابية ). وقد جمع هذا التقرير العديد من الأفكار المتداولة آنذاك، وعرض ثلاثة ابتكارات لغوية رئيسية:

  • بنية الكتلة المتداخلة: يمكن تجميع تسلسلات التعليمات البرمجية والتصريحات المرتبطة بها في كتل دون الحاجة إلى تحويلها إلى إجراءات منفصلة ومسماة بشكل صريح؛
  • النطاق المعجمي : يمكن أن تحتوي الكتلة على متغيراتها الخاصة وإجراءاتها ووظائفها، غير المرئية للتعليمات البرمجية خارج تلك الكتلة، أي إخفاء المعلومات .

وكان هناك ابتكار آخر ذو صلة بهذا الأمر، وهو كيفية وصف اللغة:

  • استُخدمت صيغة باكوس-ناور (BNF)، وهي صيغة رياضية دقيقة، لوصف بنية اللغة. وقد استخدمت جميع لغات البرمجة اللاحقة تقريبًا صيغةً مختلفةً من صيغة باكوس-ناور لوصف الجزء غير السياقي من بنيتها.

كان للغة ALGOL 60 تأثير بالغ في تصميم اللغات اللاحقة، والتي سرعان ما اكتسب بعضها شعبية واسعة. صُممت أنظمة بوروز الكبيرة لتُبرمج باستخدام مجموعة فرعية موسعة من لغة ALGOL.

تم مواصلة تطوير الأفكار الرئيسية للغة ALGOL، مما أدى إلى إنتاج ALGOL 68 :

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

أدت العديد من ميزات لغة ALGOL 68 قليلة الاستخدام (مثل الكتل المتزامنة والمتوازية) ونظامها المعقد من الاختصارات النحوية وتحويلات الأنواع التلقائية إلى عدم شعبيتها بين المطورين، واكتسبت سمعة بأنها صعبة. وقد انسحب نيكلاوس ويرث فعليًا من لجنة التصميم لإنشاء لغة باسكال الأبسط .

الشعارات
فورتران
التلعثم
محاكاة

من بين اللغات البارزة التي تم تطويرها في هذه الفترة ما يلي:

إرساء النماذج الأساسية

الشعارات
مخطط
ج
أحاديث قصيرة

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

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

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

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

من بين اللغات البارزة التي تم تطويرها في هذه الفترة ما يلي:

ثمانينيات القرن العشرين: التوحيد، والوحدات، والأداء

الشعارات
MATLAB
إرلانج
تي سي إل
لغة سي++

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

كان أحد الاتجاهات الجديدة المهمة في تصميم اللغات هو التركيز المتزايد على برمجة الأنظمة واسعة النطاق من خلال استخدام الوحدات البرمجية ، أو وحدات تنظيمية واسعة النطاق من التعليمات البرمجية. وقد طورت لغات Modula وAda وML أنظمة وحدات برمجية بارزة في ثمانينيات القرن الماضي. وغالبًا ما كانت أنظمة الوحدات البرمجية مرتبطة ببنى البرمجة العامة : حيث أن البرمجة العامة هي في جوهرها وحدات برمجية ذات معلمات (انظر أيضًا تعدد الأشكال (علوم الحاسوب) ).

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

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

استمر تطور تكنولوجيا اللغة على هذا المنوال حتى تسعينيات القرن العشرين.

من بين اللغات البارزة التي تم تطويرها في هذه الفترة ما يلي:

التسعينيات: عصر الإنترنت

الشعارات
هاسكل
لغة لوا
PHP
ريبول
بايثون
روبي
أوكاميل

شكّل النمو السريع للإنترنت في منتصف التسعينيات الحدث التاريخي الأبرز التالي في لغات البرمجة. فمن خلال فتح منصة جديدة كليًا لأنظمة الحاسوب، أتاح الإنترنت فرصةً لاعتماد لغات جديدة. وسرعان ما اكتسبت لغة جافا سكريبت شعبيةً واسعةً بفضل تكاملها المبكر مع متصفح نتسكيب نافيغيتور. كما حققت لغات برمجة نصية أخرى انتشارًا واسعًا في تطوير تطبيقات مخصصة لخوادم الويب، مثل PHP. لم تشهد التسعينيات أي ابتكارات جوهرية في لغات البرمجة الإجرائية ، بل شهدت إعادة دمج وتطويرًا للأفكار القديمة. وبدأت هذه الحقبة انتشار لغات البرمجة الوظيفية ، حيث كان أحد أهم مبادئها الأساسية هو إنتاجية المبرمج. وظهرت العديد من لغات التطوير السريع للتطبيقات (RAD)، والتي عادةً ما كانت تأتي مع بيئة تطوير متكاملة (IDE) وخاصية جمع البيانات المهملة ، وكانت مشتقة من لغات أقدم. جميع هذه اللغات كانت كائنية التوجه ، ومنها أوبجكت باسكال ، وأوبجكتيف كامل (التي أعيد تسميتها إلى OCamlوفيجوال بيسك ، وجافا . وقد حظيت جافا باهتمام كبير.

كانت لغات البرمجة النصية الجديدة أكثر جذرية وابتكارًا من لغات التطوير السريع للتطبيقات (RAD) . لم تنحدر هذه اللغات مباشرةً من لغات أخرى، بل تميزت ببنية نحوية جديدة ودمج أوسع للميزات. يرى الكثيرون أن لغات البرمجة النصية هذه أكثر إنتاجية حتى من لغات التطوير السريع للتطبيقات، ولكن غالبًا ما يعود ذلك إلى خيارات تجعل البرامج الصغيرة أبسط، بينما تجعل البرامج الكبيرة أكثر صعوبة في الكتابة والصيانة. ومع ذلك، أصبحت لغات البرمجة النصية الأكثر استخدامًا في مجال الويب.

تضمنت بعض لغات البرمجة لغات أخرى ضمن توزيعاتها لتوفير وقت التطوير. على سبيل المثال، تضمنت كل من بايثون وروبي لغة Tcl لدعم برمجة واجهات المستخدم الرسومية (GUI) من خلال مكتبات مثل Tkinter .

من بين اللغات البارزة التي تم تطويرها في هذه الفترة ما يلي:

العقد الأول من الألفية الثانية: نماذج البرمجة

الشعارات
د
رائع
باور شيل
يخدش
يذهب
كلوجر
هاكس

يستمر تطور لغات البرمجة، ويتم استخدام المزيد من نماذج البرمجة في الإنتاج.

تضمنت بعض هذه الاتجاهات ما يلي:

قدمت شركات التكنولوجيا الكبرى العديد من لغات البرمجة الجديدة المصممة لتلبية احتياجاتها. على سبيل المثال:

من بين اللغات البارزة التي تطورت خلال هذه الفترة ما يلي:

العقد الثاني من القرن الحادي والعشرين: عصر الهواتف المحمولة

الشعارات
الصدأ
دارت
سويفت
كوتلين
تايب سكريبت
سي شارب
جوليا
زيج

يستمر تطور لغات البرمجة مع ظهور مجالات برمجة جديدة.

واصلت العديد من شركات التكنولوجيا الكبرى طرح لغات برمجة جديدة مصممة لتلبية احتياجاتها وتوفير دعم من الدرجة الأولى لمنصاتها. على سبيل المثال:

ومن بين اللغات البارزة التي تم تطويرها خلال هذه الفترة: [ 18 ] [ 19 ]

وتشمل لغات البرمجة الجديدة الأخرى Elm و Ballerina و Red و Crystal و V (Vlang) و Reason .

الشعارات
باور إف إكس
الكربون

يستمر تطوير لغات برمجة جديدة. تسعى بعض اللغات الجديدة إلى توفير مزايا لغات معروفة مثل C++ (متعددة الاستخدامات وسريعة) مع إضافة ميزات الأمان أو تقليل التعقيد. بينما تسعى لغات أخرى إلى توفير سهولة الاستخدام كما في لغة بايثون مع إعطاء الأولوية للأداء.

تتضمن بعض لغات البرمجة الجديدة البارزة ما يلي:

الشخصيات الرئيسية

بعض المبتكرين
دينيس ريتشي
نيكلاوس ويرث
غريس إم. هوبر
بيارن ستروستروب
أندرس هيلسبرغ
غيدو فان روسوم
يوكيهيرو ماتسوموتو
جيمس جوسلينج
لاري وول

بعض الشخصيات الرئيسية التي ساهمت في تطوير لغات البرمجة:

انظر أيضاً

مراجع

  1. هوبر (1978) ص 16.
  2. كنوت، دونالد إي .؛ باردو، لويس تراب. "التطور المبكر للغات البرمجة". موسوعة علوم وتكنولوجيا الحاسوب . 7. مارسيل ديكر: 419-493 .
  3. أطروحة الدكتوراه لكورادو بوم
  4. Fuegi, J.; Francis, J. (أكتوبر–ديسمبر 2003)، "Lovelace & Babbage and the creation of the 1843 'notes'حوليات تاريخ الحوسبة ، 25 (4): 16-26 ، رمز Bibcode : 2003IAHC...25d..16F ، doi : 10.1109/MAHC.2003.1253887
  5. بالز، ريبيكا (24 يوليو 2023). "شرح محرك تشارلز باباج التحليلي" . history-computer.com .
  6. سويد، دورون. "المحركات" . computerhistory.org . تم الاطلاع عليه بتاريخ 23 فبراير 2024 .
  7. في عامي 1998 و2000، تم إنشاء مترجمات للغة كتمرين تاريخي. روخاس، راؤول ، وآخرون (2000). "بلانكالكول: أول لغة برمجة عالية المستوى وتطبيقها". معهد إطار المعلوماتية، جامعة برلين الحرة، التقرير الفني B-3/2000. (النص الكامل)
  8. سيبستا، دبليو إس (2006). مفاهيم لغات البرمجة . بيرسون/أديسون-ويسلي. ص 44. ISBN  978-0-321-33025-3.
  9. "وفاة جون باكوس، مبتكر لغة فورتران - التكنولوجيا والأجهزة" . أخبار إن بي سي. 20 مارس 2007. تاريخ الاطلاع: 25 أبريل 2010 .
  10. "CSC-302 99S : الدرس الثاني: نبذة تاريخية عن لغات البرمجة" . Math.grin.edu. مؤرشف من الأصل بتاريخ 15 يوليو 2010. تم الاطلاع عليه بتاريخ 25 أبريل 2010 . 
  11. بادوا، ديفيد (فبراير 2000). "مترجم لغة فورتران 1" (ملف PDF) . الحوسبة في العلوم والهندسة . 2 (1): 70-75 . رمز Bibcode : 2000CSE.....2a..70P . doi : 10.1109/5992.814661 . تاريخ الاسترجاع: 7 نوفمبر 2019 .
  12. يوجين لوه (18 يونيو 2010). "لغة البرمجة المثالية للحوسبة عالية الأداء" . مجلة ACM Queue . 8 (6). رابطة آلات الحوسبة.
  13. "HPL - تطبيق محمول لمعيار Linpack عالي الأداء لأجهزة الكمبيوتر ذات الذاكرة الموزعة" . تم الاطلاع عليه بتاريخ 21-02-2015 .
  14. هوبر (1978) ص 16.
  15. ساميت (1969) ص 316
  16. ساميت (1978) ص 204.
  17. غوردون، مايكل جيه سي (1996). "من LCF إلى HOL: تاريخ موجز" (ملف PDF) . ص 3. تم الاطلاع عليه بتاريخ 4 مايو 2015. تم تنفيذ Edinburgh LCF، بما في ذلك مترجم ML، بلغة Lisp. 
  18. "مؤشر TIOBE، أفضل 100 لغة برمجة وفقًا لمؤشر TIOBE" . www.tiobe.com . مؤشر TIOBE . 22 فبراير 2024.
  19. "مؤتمر GitHub's Octoverse 2018" . مؤرشف من الأصل بتاريخ 22-03-2019.
  20. روخاس، راؤول؛ هاشاجن، أولف (2002). الحواسيب الأولى: التاريخ والبنى . مطبعة معهد ماساتشوستس للتكنولوجيا. ص 292. ISBN  978-0262681377تم الاطلاع عليه بتاريخ 25 أكتوبر 2013 .

للمزيد من القراءة