آلة وارن المجردة
في عام 1983، صمم ديفيد إتش دي وارن آلة مجردة لتنفيذ لغة برولوج ، تتكون من بنية ذاكرة ومجموعة تعليمات . [ 1 ] [ 2 ] [ 3 ] أصبح هذا التصميم يُعرف باسم آلة وارن المجردة ( WAM )، وأصبح الهدف القياسي الفعلي لمترجمات برولوج .
غاية
يهدف تحويل كود برولوج إلى كود WAM ذي المستوى الأدنى إلى تحسين كفاءة تفسير برنامج برولوج لاحقًا. فكود برولوج سهل التحويل نسبيًا إلى تعليمات WAM، التي يمكن تفسيرها بكفاءة أكبر. كما أن تحسينات الكود اللاحقة وتحويله إلى كود أصلي غالبًا ما يكون أسهل عند استخدام التمثيل ذي المستوى الأدنى.
لكتابة برامج برولوج فعّالة، يُعدّ الفهم الأساسي لكيفية عمل WAM مفيدًا. من أهم مفاهيم WAM: فهرسة الوسيط الأول وعلاقتها بنقاط الاختيار، وتحسين استدعاءات الذيل ، واستعادة الذاكرة عند الفشل.
مناطق الذاكرة
تحتوي وحدة الذاكرة WAM على مناطق الذاكرة التالية:
- المكدس أو الكومة العالمية ، المستخدمة لتخزين المصطلحات المركبة
- المكدس المحلي لإطارات البيئة ونقاط الاختيار
- المسار لتسجيل أي ارتباطات المتغيرات يجب فكها عند التراجع .
مثال
إليكم جزءًا من كود برولوج:
فتاة ( سالي ). فتاة ( جين ).ولد ( ب ) :- \+ فتاة ( ب ).سيقوم مُترجم لغة برولوج القائم على WAM بتحويل هذا إلى تعليمات WAM مشابهة لما يلي:
predicate ( girl / 1 ) : switch_on_term ( 2 , 1 , fail , fail , fail ), label ( 1 ) : switch_on_atom ([( sally , 3 ),( jane , 5 )]) label ( 2 ) : try_me_else ( 4 ) label ( 3 ) : get_atom ( sally , 0 ) proceed label ( 4 ) : trust_me_else_fail label ( 5 ) : get_atom ( jane , 0 ) proceedpredicate ( boy / 1 ) : get_variable ( x ( 1 ), 0 ) put_structure ( girl / 1 , 0 ) unify_local_value ( x ( 1 )) execute (( \+ ) / 1 )])من أهم خصائص هذا الكود قدرته على التعامل مع مختلف طرق استدعاء الدوال: فقد يكون أي وسيط متغيرًا، أو حدًا أساسيًا ، أو حدًا مُنشأ جزئيًا. وتتولى تعليمات "التبديل" معالجة هذه الحالات المختلفة.
مراجع
- ↑ ديفيد إتش دي وارين (أكتوبر 1983). مجموعة تعليمات برولوج مجردة (ملف PDF) . مينلو بارك، كاليفورنيا، الولايات المتحدة الأمريكية: مركز الذكاء الاصطناعي في معهد SRI الدولي . مؤرشف (ملف PDF) من الأصل بتاريخ 19 يونيو 2022.
- ↑ حسن آيت قاسي (18 فبراير 1999). آلة وارن المجردة: إعادة بناء تعليمية (ملف PDF) . مؤرشف من الأصل في 13 فبراير 2003.
- ↑ حسن آيت قاسي. "آلة وارن المجردة: إعادة بناء تعليمية؛ الكتاب، والتصويبات، والشرائح" . مؤرشف من الأصل في 19 يناير 2022. تم الاطلاع عليه في 7 مارس 2011 .
- البرمجة المنطقية
- الآلات المجردة
- الآلات الافتراضية
- برمجيات SRI الدولية
