نظرية لغات البرمجة

الحرف اليوناني الصغير λ ( لامدا ) هو رمز غير رسمي في مجال نظرية لغات البرمجة. ويعود هذا الاستخدام إلى حساب لامدا ، وهو نموذج حسابي قدمه ألونسو تشيرش في ثلاثينيات القرن العشرين، ويستخدمه باحثو لغات البرمجة على نطاق واسع. وقد ظهر هذا الحرف على غلاف كتاب " بنية وتفسير برامج الحاسوب" الكلاسيكي ، [ 1 ] وعنوان ما يُعرف بـ" أوراق لامدا" المنشورة بين عامي 1975 و1980، والتي كتبها جيرالد جاي سوسمان وجاي إل. ستيل الابن ، مطورا لغة سكيم .

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

تاريخ

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

كانت لغة البرمجة Plankalkül أول لغة برمجة تُخترع ، وقد صممها كونراد تسوزه في أربعينيات القرن العشرين، لكنها لم تُعرف للعامة حتى عام 1972، ولم تُطبّق حتى عام 1998. أما أول لغة برمجة عالية المستوى معروفة وناجحة على نطاق واسع فكانت FORTRAN (اختصارًا لـ Formula Translation)، والتي طوّرها فريق من باحثي شركة IBM بقيادة جون باكوس بين عامي 1954 و1957 . أدى نجاح FORTRAN إلى تشكيل لجنة من العلماء لتطوير لغة حاسوب "عالمية"، وكانت نتيجة جهودهم لغة ALGOL 58. وفي سياق منفصل، طوّر جون مكارثي من معهد ماساتشوستس للتكنولوجيا (MIT) لغة Lisp ، وهي أول لغة برمجة أكاديمية الأصل تحقق نجاحًا. ومع نجاح هذه الجهود الأولية، أصبحت لغات البرمجة موضوعًا بحثيًا نشطًا في ستينيات القرن العشرين وما بعدها.

الجدول الزمني

بعض الأحداث الرئيسية الأخرى في تاريخ نظرية لغات البرمجة منذ ذلك الحين:

خمسينيات القرن العشرين
الستينيات
سبعينيات القرن العشرين
ثمانينيات القرن العشرين
التسعينيات

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

الدلالات الرسمية

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

نظرية الأنواع

نظرية الأنواع هي دراسة أنظمة الأنواع ؛ وهي "طريقة نحوية قابلة للتطبيق لإثبات غياب سلوكيات برمجية معينة عن طريق تصنيف العبارات وفقًا لأنواع القيم التي تحسبها". [ 4 ] تتميز العديد من لغات البرمجة بخصائص أنظمة الأنواع الخاصة بها.

تحليل البرامج وتحويلها

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

تحليل لغات البرمجة المقارنة

يسعى تحليل لغات البرمجة المقارن إلى تصنيف اللغات إلى أنواع مختلفة بناءً على خصائصها؛ وغالبًا ما تُعرف الفئات الواسعة من اللغات باسم نماذج البرمجة .

البرمجة العامة والبرمجة الوصفية

البرمجة الميتا هي توليد برامج من الدرجة العليا والتي، عند تنفيذها، تنتج برامج (ربما بلغة مختلفة، أو في مجموعة فرعية من اللغة الأصلية) كنتيجة لذلك.

لغات خاصة بالمجال

اللغات الخاصة بالمجال هي تلك التي تم تصميمها لحل المشكلات بكفاءة في مجال معين، أو جزء منه.

بناء المترجم

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

أنظمة وقت التشغيل

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

المجلات والمنشورات والمؤتمرات

تُعد المؤتمرات المنصة الرئيسية لعرض الأبحاث في لغات البرمجة. ومن أبرز المؤتمرات المعروفة: ندوة مبادئ لغات البرمجة (POPL)، وتصميم لغات البرمجة وتنفيذها (PLDI)، والمؤتمر الدولي للبرمجة الوظيفية (ICFP)، والمؤتمر الدولي للبرمجة الكائنية والأنظمة واللغات والتطبيقات ( OOPSLAوالمؤتمر الدولي للدعم المعماري للغات البرمجة وأنظمة التشغيل (ASPLOS).

تشمل المجلات البارزة التي تنشر أبحاث PLT كلاً من ACM Transactions on Programming Languages ​​and Systems (TOPLAS) و Journal of Functional Programming (JFP) و Journal of Functional and Logic Programming و Higher-Order and Symbolic Computation .

انظر أيضاً

مراجع

  1. أبيلسون، هارولد ؛ سوسمان، جيرالد جاي ؛ سوسمان، جولي (1996). بنية وتفسير برامج الحاسوب (  الطبعة الثانية). كامبريدج، ماساتشوستس: مطبعة معهد ماساتشوستس للتكنولوجيا . ISBN 0-262-01153-0. OCLC 34576857 . 
  2. "نماذج الحوسبة" . wiki.c2.com . 3 ديسمبر 2014. مؤرشف من الأصل في 30 نوفمبر 2020.
  3. ^ سي. بوم و دبليو جروس (1996). مقدمة إلى CUCH. في ER Caianiello (محرر)، نظرية الأوتوماتا ، ص. 35-64.
  4. بنجامين سي. بيرس. 2002. الأنواع ولغات البرمجة . مطبعة معهد ماساتشوستس للتكنولوجيا، كامبريدج، ماساتشوستس، الولايات المتحدة الأمريكية.

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