POP-11

POP-11 هي لغة برمجة انعكاسية ، يتم تجميعها تدريجيًا ، وتتمتع بالعديد من خصائص اللغات المفسرة . وهي اللغة الأساسية لبيئة برمجة Poplog التي طورتها في الأصل جامعة ساسكس ، ومؤخرًا كلية علوم الحاسوب بجامعة برمنغهام ، التي تستضيف موقع Poplog الإلكتروني الرئيسي.

لغة POP-11 هي تطوير للغة POP-2 ، التي طُوّرت في جامعة إدنبرة ، وتتميز بنموذج مكدس مفتوح (مثل لغة فورث ، وغيرها ). وهي لغة إجرائية في الأساس ، لكنها تدعم أيضًا بنيات اللغة التصريحية، بما في ذلك مُطابقة الأنماط، وتُستخدم في الغالب لأغراض البحث والتدريس في مجال الذكاء الاصطناعي ، على الرغم من أنها تمتلك ميزات كافية للعديد من فئات المشكلات الأخرى. وكثيرًا ما تُستخدم لتقديم تقنيات البرمجة الرمزية لمبرمجي اللغات التقليدية مثل باسكال ، الذين يجدون بناء جملة POP أكثر ألفةً من بناء جملة ليسب . ومن ميزات POP-11 دعمها للدوال من الدرجة الأولى .

تُعدّ POP-11 اللغة الأساسية لنظام Poplog. يتيح توفر المُصرّف وروتيناته الفرعية أثناء التشغيل (وهو شرط أساسي للتجميع التزايدي) دعم نطاق أوسع بكثير من الإضافات (بما في ذلك إضافات وقت التشغيل، مثل إضافة أنواع بيانات جديدة) مقارنةً بما هو ممكن باستخدام وحدات الماكرو فقط . وقد مكّن هذا من إضافة مُصرّفات تزايدية (اختيارية) للغات Prolog و Common Lisp و Standard ML ، والتي يمكن إضافتها حسب الحاجة لدعم تطوير اللغات المختلطة أو التطوير باللغة الثانية دون استخدام أي من بنيات POP-11. وقد مكّن هذا من استخدام Poplog من قِبل المعلمين والباحثين والمطورين المهتمين بإحدى اللغات فقط. وكان نظام Clementine لاستخراج البيانات ، الذي طورته شركة ISL ، أنجح منتج تم تطويره باستخدام POP-11 . بعد أن اشترت SPSS برنامج ISL، قاموا بتغيير اسم Clementine إلى SPSS Modeler وقرروا نقله إلى C++ و Java ، ونجحوا في النهاية بجهد كبير، وربما فقدوا بعض المرونة التي يوفرها استخدام لغة الذكاء الاصطناعي.

كان برنامج POP-11 متاحًا لفترة من الزمن كجزء من حزمة تجارية باهظة الثمن (Poplog)، ولكن منذ عام 1999 تقريبًا، أصبح متاحًا مجانًا كجزء من نسخة البرمجيات مفتوحة المصدر من Poplog، بما في ذلك العديد من الحزم الإضافية ومكتبات التعليم. تتوفر نسخة إلكترونية من برنامج ELIZA باستخدام POP-11 في جامعة برمنغهام.

في جامعة ساسكس، استخدم ديفيد يونغ POP-11 بالاشتراك مع C و Fortran لتطوير مجموعة من أدوات التدريس والتطوير التفاعلي لمعالجة الصور والرؤية، وقد جعلها متاحة في ملحق Popvision لـ Poplog.

أمثلة برمجية بسيطة

فيما يلي مثال على برنامج POP-11 بسيط:

define Double(Source) -> Result; المصدر*2 -> النتيجة؛ enddefine;
Double(123) =>

هذا ما يُطبع:

** 246

يتضمن هذا بعض معالجة القوائم:

define RemoveElementsMatching(Element, Source) -> Result; فهرس المتغيرات المحلية؛ [[% لكل فهرس في المصدر، قم بما يلي: إلا إذا كان الفهرس يساوي العنصر أو كان الفهرس يطابق العنصر، فِهرِس؛ endunless; endfor; %]] -> النتيجة؛ enddefine; RemoveElementsMatching("the", [[the cat sat on the mat]]) => ;;; يُخرج [[cat sat on mat]] RemoveElementsMatching("the", [[the cat] [sat on] the mat]) => ;;; تُخرج [[the cat] [sat on] mat] RemoveElementsMatching([[= cat]], [[the cat]] is a [[big cat]]) => ;;; يُخرج [[is a]] 

تتوفر أمثلة على استخدام مُطابق الأنماط POP-11، الذي يُسهّل على الطلاب تعلم تطوير برامج معالجة قوائم متطورة دون الحاجة إلى التعامل مع الأنماط كهياكل شجرية يتم الوصول إليها بواسطة دالتي "الرأس" و"الذيل" (CAR وCDR في لغة Lisp)، في البرنامج التعليمي التمهيدي عبر الإنترنت . يُعدّ هذا المُطابق جوهر مجموعة أدوات SimAgent (sim_agent) . بعض الميزات القوية لهذه المجموعة، مثل ربط متغيرات الأنماط بمتغيرات التعليمات البرمجية المضمنة، كان من الصعب للغاية تنفيذها لولا إمكانيات المُصرّف التزايدي.

انظر أيضاً

مراجع

  • آر. بورستال، أ. كولينز، و ر. بوبلستون ، البرمجة بلغة بوب-2 ، مطبعة الجامعة، إدنبرة، 1968
  • دي جيه إم ديفيز، دليل مستخدمي POP-10 ، تقرير علوم الحاسوب رقم 25، جامعة ويسترن أونتاريو، 1976
  • إس. هاردي وسي. ميليش، "دمج لغة برولوج في بيئة بوبلوج"، في كتاب تطبيقات برولوج ، تحرير جيه إيه كامبل، وايلي، نيويورك، 1983، الصفحات 147-162
  • آر. باريت، أ. رامزي، وأ. سلومان، POP-11: لغة عملية للذكاء الاصطناعي ، إليس هوروود، تشيستر، 1985
  • م. بيرتون ون. شادبولت، برمجة POP-11 للذكاء الاصطناعي ، أديسون-ويسلي، 1987
  • ج. لافينثال، البرمجة بلغة POP-11 ، منشورات بلاكويل العلمية المحدودة، 1987
  • R. Barrett and A. Ramsay, Artificial Intelligence in Practice:Examples in Pop-11 , Ellis Horwood, Chicester, 1987.
  • م. شاربلز وآخرون، الحواسيب والفكر ، مطبعة معهد ماساتشوستس للتكنولوجيا، 1987. (مقدمة في العلوم المعرفية باستخدام Pop-11. النسخة الإلكترونية المشار إليها أعلاه.)
  • جيمس أندرسون، محرر، Pop-11 يبلغ سن الرشد: تطور لغة برمجة الذكاء الاصطناعي ، إليس هوروود، تشيتشستر، 1989
  • جي. غازدار وسي. ميليش، معالجة اللغة الطبيعية في Pop11/Prolog/Lisp ، أديسون ويسلي، 1989. ( اقرأ عبر الإنترنت )
  • R. Smith, A. Sloman and J. Gibson, POPLOG's two-level virtual machine support for interactive languages, in Research Directions in Cognitive Science Volume 5: Artificial Intelligence , Eds. D. Sleeman and N. Bernsen, Lawrence Erlbaum Associates, pp.  203–231, 1992. (متاح كتقرير بحثي في ​​العلوم المعرفية رقم 153، كلية المعلوماتية، جامعة ساسكس).
  • كريس ثورنتون وبنديكت دو بولاي، الذكاء الاصطناعي من خلال البحث ، كلوير أكاديميك (نسخة الغلاف الورقي من كتب إنتلكت) دوردريخت هولندا ونورويل، ماساتشوستس الولايات المتحدة الأمريكية (إنتلكت في أكسفورد) 1992.
  • أ. سلومان، كتاب تمهيدي عن البوب-11 ، 1999 (الطبعة الثالثة)