ما هي الحالات التي لا يمكننا فيها إجراء تحليل LR دون قواعد معدنية؟

cs.stackexchange https://cs.stackexchange.com/questions/129906

  •  29-09-2020
  •  | 
  •  

سؤال

العديد من نصوص تصميم المحول البرمجي القياسي تذكر بناء القواعد المعزز كخطوة أولية من تحليل LR.

السبب في كثير من الأحيان

  1. مطلوب في الحالات التي يأتي فيها رمز البداية على اليد اليمنى لأي إنتاج
  2. مطلوب عند بدء تشغيل RHS رمز الإنتاج المتعدد.
  3. أنا أحسب أنه إذا كان في جزء عمل جدول التحليل من حالة DFA الأولى للغاية، فإننا نقدم "النجاح" تحت دخول "$" لن نطلب قواعد قواعد المعزز.هل هذا صحيح أم أن أفتقد شيئا؟

    تحرير: هنا هو كيف أعتقد أننا نتمكن من إعلان تحليل كما النجاح:

    النظر في S -> .a بعد أن نجفف من "A" بدلا من الذهاب إلى GOOTO (S) من الدولة الحالية، فإن TTOP من المكدس، يمكننا ببساطة Lookahead "$" ونجاح الإخراج

هل كانت مفيدة؟

المحلول

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

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

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى cs.stackexchange
scroll top