التكرار الأيسر
في نظرية اللغات الرسمية لعلوم الحاسوب ، يُعدّ الاستدعاء الذاتي الأيسر حالة خاصة من الاستدعاء الذاتي ، حيث يتم التعرف على سلسلة نصية كجزء من لغة معينة من خلال حقيقة أنها تتحلل إلى سلسلة نصية من نفس تلك اللغة (على اليسار) ولاحقة (على اليمين). على سبيل المثال،يمكن التعرف عليها كمجموع لأنها قابلة للتجزئة إلى، وأيضًا مجموع، ولاحقة مناسبة.
من حيث القواعد الخالية من السياق ، يكون الرمز غير الطرفي يساريًا إذا كان الرمز الأيسر في أحد قواعد الإنتاج الخاصة به هو نفسه (في حالة الاستدعاء اليساري المباشر) أو يمكن صنعه بنفسه من خلال سلسلة من الاستبدالات (في حالة الاستدعاء اليساري غير المباشر).
تعريف
تكون القواعد النحوية ذات استدعاء ذاتي من اليسار إذا وفقط إذا وُجد رمز غير طرفييمكن اشتقاق ذلك إلى شكل جملة يكون فيه نفسه هو الرمز الأيسر. [ 1 ] رمزياً،
- ،
أينيشير إلى عملية إجراء استبدال واحد أو أكثر، وهي أي سلسلة من الرموز الطرفية وغير الطرفية.
التكرار المباشر لليسار
يحدث الاستدعاء الذاتي المباشر من اليسار عندما يمكن تحقيق التعريف باستبدال واحد فقط. ويتطلب ذلك قاعدة من الشكل التالي:
أينهي سلسلة من الرموز غير الطرفية والطرفية. على سبيل المثال، القاعدة
هي دالة تكرارية مباشرة من اليسار. قد يبدو محلل الانحدار التكراري من اليسار إلى اليمين لهذه القاعدة كما يلي:
void Expression () { Expression (); match ( '+' ); Term (); }وسيؤدي تنفيذ مثل هذا الكود إلى حدوث تكرار لا نهائي.
الاستدعاء الذاتي غير المباشر من اليسار
يحدث الاستدعاء الذاتي الأيسر غير المباشر عندما يتحقق تعريف الاستدعاء الذاتي الأيسر من خلال عدة عمليات استبدال. وهو يستلزم مجموعة من القواعد التي تتبع النمط التالي:
أينهي متواليات يمكن أن ينتج عن كل منها سلسلة فارغة ، بينماقد تكون أي سلسلة من الرموز الطرفية وغير الطرفية. لاحظ أن هذه السلاسل قد تكون فارغة. الاشتقاق
ثم يعطيكما هو الحال في أقصى اليسار في شكله النهائي للجملة.
الاستخدامات
يُستخدم الاستدعاء الذاتي الأيسر عادةً كمصطلح لجعل العمليات تجميعية من اليسار : أي أن التعبير a+b-c-d+eيُقيّم على أنه (((a+b)-c)-d)+e. في هذه الحالة، يمكن تحقيق ترتيب التقييم هذا من خلال القواعد النحوية الثلاث.
هذه لا تسمح إلا بتحليلa+b-c-d+eباعتبارها تتكون منa+b-c-dوe، والتي a+b-c-dبدورها تتكون منa+b-cوd، بينما a+b-cيتكون منa+bوc، إلخ.
إزالة الاستدعاء الذاتي الأيسر
غالباً ما يُشكّل الاستدعاء الذاتي الأيسر مشكلةً للمحللات النحوية، إما لأنه يُؤدي بها إلى استدعاء ذاتي لا نهائي (كما هو الحال في معظم المحللات النحوية من أعلى إلى أسفل )، أو لأنها تتوقع وجود قواعد في صيغة طبيعية تمنعه (كما هو الحال في العديد من المحللات النحوية من أسفل إلى أعلى ). لذلك، غالباً ما تُجرى معالجة مسبقة للقواعد النحوية للتخلص من الاستدعاء الذاتي الأيسر.
إزالة الاستدعاء الذاتي المباشر من اليسار
فيما يلي الخوارزمية العامة لإزالة الاستدعاء الذاتي المباشر من اليسار. وقد أُدخلت عدة تحسينات على هذه الطريقة. [ 2 ] بالنسبة للرمز غير الطرفي ذي الاستدعاء الذاتي من اليسارتجاهل أي قواعد من هذا القبيلوانظر إلى أولئك الذين بقوا:
أين:
- كلهي سلسلة غير فارغة من الرموز غير الطرفية والطرفية، و
- كلهي سلسلة من الرموز غير الطرفية والطرفية التي لا تبدأ بـ.
استبدل هذه بمجموعتين من الإنتاجات، مجموعة واحدة لـ:
ومجموعة أخرى للطرفية غير النهائية الجديدة(يُطلق عليها غالبًا اسم "الذيل" أو "الباقي"):
كرر هذه العملية حتى لا يتبقى أي تكرار مباشر من اليسار.
على سبيل المثال، ضع في اعتبارك مجموعة القواعد
يمكن إعادة كتابة هذا لتجنب الاستدعاء الذاتي الأيسر كما يلي:
إزالة جميع عمليات الاستدعاء الذاتي الأيسر
يمكن توسيع العملية المذكورة أعلاه للقضاء على جميع عمليات الاستدعاء الذاتي الأيسر، وذلك عن طريق تحويل الاستدعاء الذاتي الأيسر غير المباشر إلى استدعاء ذاتي أيسر مباشر على أعلى رمز غير طرفي مرقم في الدورة.
- المدخلات : قواعد اللغة: مجموعة من الرموز غير الطرفيةوإنتاجاتهم
- الناتج: قواعد نحوية معدلة تولد نفس اللغة ولكن بدون استدعاء ذاتي يساري
- لكل رمز غير طرفي:
- كرر العملية حتى لا يتغير التركيب النحوي:
- لكل قاعدة، الكونها سلسلة من الرموز الطرفية وغير الطرفية:
- لويبدأ برمز غير طرفيو:
- يتركيكونبدون قيادتها.
- قم بإزالة القاعدة.
- لكل قاعدة:
- أضف القاعدة.
- لويبدأ برمز غير طرفيو:
- لكل قاعدة، الكونها سلسلة من الرموز الطرفية وغير الطرفية:
- قم بإزالة التكرار المباشر من اليسار لـكما هو موضح أعلاه.
- كرر العملية حتى لا يتغير التركيب النحوي:
- لكل رمز غير طرفي:
تتمثل الخطوة 1.1.1 في توسيع الرمز غير الطرفي الأوليفي الجانب الأيمن من بعض القواعدولكن فقط إذا. لوكانت خطوة واحدة في دورة من الإنتاج تؤدي إلى تكرار يساري، ثم قام هذا بتقصير تلك الدورة بخطوة واحدة، ولكن غالبًا على حساب زيادة عدد القواعد.
يمكن النظر إلى الخوارزمية على أنها تُنشئ ترتيبًا طوبولوجيًا على الرموز غير الطرفية: بعد ذلك لا يمكن أن يكون هناك سوى قاعدةلولاحظ أن هذه الخوارزمية حساسة للغاية لترتيب الرموز غير الطرفية؛ وغالبًا ما تركز عمليات التحسين على اختيار هذا الترتيب بشكل جيد.
المخاطر
على الرغم من أن التحويلات المذكورة أعلاه تحافظ على اللغة المولدة بواسطة قواعد نحوية، إلا أنها قد تُغير أشجار التحليل التي تشهد التعرف على السلاسل النصية. مع اتباع إجراءات مناسبة، يمكن استعادة الأشجار الأصلية من خلال إعادة كتابتها ، ولكن إذا تم إغفال هذه الخطوة، فقد تُغير الاختلافات دلالات التحليل.
تُعدّ خاصية التجميع عرضة للتأثر بشكل خاص؛ إذ تظهر عوامل التجميع اليسرى عادةً في ترتيبات شبيهة بعوامل التجميع اليمنى في ظل القواعد النحوية الجديدة. على سبيل المثال، بدءًا من هذه القواعد النحوية:
تؤدي التحويلات القياسية لإزالة الاستدعاء الذاتي الأيسر إلى ما يلي:
كان تحليل السلسلة "1 - 2 - 3" باستخدام القواعد النحوية الأولى في محلل LALR (الذي يمكنه التعامل مع القواعد النحوية ذات الاستدعاء الذاتي الأيسر) سيؤدي إلى شجرة التحليل التالية:

تقوم شجرة التحليل هذه بتجميع المصطلحات على اليسار، مما يعطي الدلالات الصحيحة (1 - 2) - 3 .
يؤدي التحليل باستخدام القواعد النحوية الثانية إلى

وهذا، عند تفسيره بشكل صحيح، يعني 1 + (-2 + (-3)) ، وهو صحيح أيضاً، ولكنه أقل دقة في تمثيل المدخلات وأصعب بكثير في التنفيذ لبعض العمليات. لاحظ كيف تظهر الحدود الموجودة على اليمين في عمق الشجرة، تماماً كما تفعل القواعد النحوية التكرارية اليمنى في حالة 1 - (2 - 3) .
استيعاب الاستدعاء الذاتي الأيسر في التحليل من أعلى إلى أسفل
لا يمكن تحليل القواعد النحوية الرسمية التي تحتوي على استدعاء ذاتي يساري بواسطة محلل LL(k) أو أي محلل تنازلي استدعائي بسيط آخر إلا بعد تحويلها إلى شكل استدعاء ذاتي يميني مكافئ ضعيفًا . في المقابل، يُفضل الاستدعاء الذاتي اليساري لمحللات LALR لأنه يؤدي إلى استخدام أقل للمكدس مقارنةً بالاستدعاء الذاتي اليميني . مع ذلك، يمكن لمحللات التنازل الأكثر تطورًا تنفيذ قواعد نحوية عامة خالية من السياق باستخدام التقليص. في عام 2006، وصف فروست وحافظ خوارزمية تستوعب القواعد النحوية الغامضة ذات قواعد الإنتاج الاستدعائية اليسارية المباشرة . [ 3 ] تم توسيع هذه الخوارزمية لتصبح خوارزمية تحليل كاملة لاستيعاب الاستدعاء الذاتي المباشر وغير المباشر من اليسار في وقت متعدد الحدود ، ولتوليد تمثيلات مضغوطة بحجم متعدد الحدود لعدد أشجار التحليل المحتملة، والتي قد تصل إلى أسّي، للقواعد النحوية شديدة الغموض، وذلك بواسطة فروست وحافظ وكالاغان في عام 2007. [ 4 ] ثم قام المؤلفون بتنفيذ الخوارزمية كمجموعة من مُركِّبات التحليل المكتوبة بلغة البرمجة هاسكل . [ 5 ]
انظر أيضاً
مراجع
- ↑ "ملاحظات حول نظرية اللغة الرسمية والتحليل النحوي" (ملف PDF) . مؤرشف من الأصل بتاريخ 27-11-2007 . تم الاطلاع عليه بتاريخ 30-10-2023 .
{{cite web}}: CS1 maint: bot: حالة عنوان URL الأصلي غير معروفة ( رابط ) . جيمس باور، قسم علوم الحاسوب، الجامعة الوطنية الأيرلندية، ماينوث، مقاطعة كيلدير، أيرلندا. JPR02 - ↑ مور، روبرت سي. (مايو 2000). "إزالة الاستدعاء الذاتي الأيسر من القواعد النحوية الخالية من السياق" (ملف PDF) . المؤتمر السادس لمعالجة اللغات الطبيعية التطبيقية : 249-255 .
- ↑ فروست، ر.؛ وحافظ، ر. (2006). "خوارزمية تحليل نحوي جديدة من أعلى إلى أسفل لمعالجة الغموض والاستدعاء الذاتي الأيسر في وقت متعدد الحدود" . إشعارات ACM SIGPLAN . 41 (5): 46-54 . doi : 10.1145/1149982.1149988 . S2CID 8006549 . متاح من المؤلف على الرابط التالي: http://hafiz.myweb.cs.uwindsor.ca/pub/p46-frost.pdf مؤرشف بتاريخ 8 يناير 2015 في أرشيف الإنترنت (Wayback Machine).
- ↑ فروست، ر.؛ ر. حافظ؛ ب. كالاغان (يونيو 2007). "تحليل نحوي معياري وفعال من أعلى إلى أسفل للقواعد النحوية اليسارية الغامضة" (ملف PDF) . ورشة العمل الدولية العاشرة حول تقنيات التحليل النحوي (IWPT)، ACL-SIGPARSE : 109-120 . مؤرشف من الأصل (ملف PDF) بتاريخ 27-05-2011.
- ↑ فروست، ر.؛ ر. حافظ؛ ب. كالاغان (يناير 2008). "مُركِّبات المُحلِّل النحوي للقواعد النحوية اليسارية المُبهمة". الجوانب العملية للغات التصريحية (ملف PDF) . سلسلة محاضرات في علوم الحاسوب. المجلد 4902. الصفحات 167-181 . doi : 10.1007/978-3-540-77442-6_12 . ISBN 978-3-540-77441-9تمت أرشفة النسخة الأصلية (PDF) بتاريخ 21-12-2008.
روابط خارجية
- اعتبارات عملية لقواعد اللغة الإنجليزية كلغة أجنبية (1) - مؤرشفة بتاريخ 1 ديسمبر 2020 على موقع Wayback Machine
- تدفق التحكم
- اللغات الرسمية
- التحليل
- التكرار
