التسلسل الهرمي Chomsky و LL (*)
-
22-07-2019 - |
سؤال
أريد تحليل لغة البرمجة. قرأت الكثير عن اللغات الرسمية والتسلسل الهرمي تشومسكي و antlr. لكنني لم أتمكن من العثور على معلومات حول كيفية ربط اللغات Antlr V3 باعتبارها محللًا متكررًا LL (*) يقبله التسلسل الهرمي لـ Chomsky.
كيف تختلط أنواع تشومسكي مع LL (*)؟ أي معلومات (عبر الإنترنت ، كتب ، أوراق) موضع تقدير كبير.
تحرير: كيف تنبؤات النحوية / الدلالية وتراجع خريطة antlr في هذا؟
المحلول
التسلسل الهرمي تشومسكي هو أساسا:
- اللغات العادية
- قواعد خالية من السياق
- القواعد الحساسة للسياق
- قواعد قابلة للتكرار (Turing-Complete) بشكل متكرر
LL Grammars (و Parsers) هي مجموعة فرعية من القواعد الخالية من السياق. يتم استخدامها لأن اللغات العادية ضعيفة جدًا لأغراض البرمجة ولأن محللًا عامًا خاليًا من السياق هو O (n^3) وهو بطيء جدًا لتحليل البرنامج. في الواقع ، فإن زيادة المحلل اللغوي مع وظائف المساعد يجعله أقوى.دخول ويكيبيديا على محلات LL يشرح بعض هذا.كتاب التنين يعتبر كتابًا رئيسيًا على المجمعين ، وقد يفسر المزيد.
نصائح أخرى
LL (*) هي مجموعة فرعية من اللغات الخالية من السياق. ومع ذلك ، فإن سؤالًا مختلفًا هو ما يمكن أن يحلى به Antlr ، بالنظر إلى المتنبئين والتراجع ، والذي يمتد قدراته.
لاحظ أنه إذا تحدثنا عن LL (*) ، فهذا يعني Antlr V3 ، وليس 2.