سؤال

أريد تحليل لغة البرمجة. قرأت الكثير عن اللغات الرسمية والتسلسل الهرمي تشومسكي و antlr. لكنني لم أتمكن من العثور على معلومات حول كيفية ربط اللغات Antlr V3 باعتبارها محللًا متكررًا LL (*) يقبله التسلسل الهرمي لـ Chomsky.

كيف تختلط أنواع تشومسكي مع LL (*)؟ أي معلومات (عبر الإنترنت ، كتب ، أوراق) موضع تقدير كبير.

تحرير: كيف تنبؤات النحوية / الدلالية وتراجع خريطة antlr في هذا؟

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

المحلول

التسلسل الهرمي تشومسكي هو أساسا:

  1. اللغات العادية
  2. قواعد خالية من السياق
  3. القواعد الحساسة للسياق
  4. قواعد قابلة للتكرار (Turing-Complete) بشكل متكرر

LL Grammars (و Parsers) هي مجموعة فرعية من القواعد الخالية من السياق. يتم استخدامها لأن اللغات العادية ضعيفة جدًا لأغراض البرمجة ولأن محللًا عامًا خاليًا من السياق هو O (n^3) وهو بطيء جدًا لتحليل البرنامج. في الواقع ، فإن زيادة المحلل اللغوي مع وظائف المساعد يجعله أقوى.دخول ويكيبيديا على محلات LL يشرح بعض هذا.كتاب التنين يعتبر كتابًا رئيسيًا على المجمعين ، وقد يفسر المزيد.

نصائح أخرى

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

لاحظ أنه إذا تحدثنا عن LL (*) ، فهذا يعني Antlr V3 ، وليس 2.

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