سؤال

نموذج باكوس – نور الممتد: إيبنف

أنا جديد جدًا في تحليل المفاهيم.أين يمكنني الحصول على مواد سهلة القراءة والمتابعة لكتابة القواعد النحوية لمكتبة Boost::spirit Library، التي تستخدم قواعد نحوية مشابهة لـ EBNF؟

حاليا أنا أبحث في إيبنف من ويكيبيديا.

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

المحلول

مقالة ويكيبيديا دقيقة.إذا كان لديك الوصول، وقراءة بالتأكيد المقال الأصلي ويرث على EBNF.

والشيء الآخر الذي يجب معرفته هو أن EBNF مصمم لتحقيق ذلك من السهل الكتابة بخط اليد لموزعات النسب العودية للغات التي تحتوي كل بنية نحوية فيها على كلمات رئيسية محددة في البداية.الأقواس المتعرجة تترجم إلى while حلقات.الأقواس المربعة (الأشياء الاختيارية) تترجم إلى if, ، والبدائل تترجم إلى if-then-else أو case صياغات.إذا كان لديك ترف تصميم لغتك بهذه الطريقة، فيمكنك التخلص من المحلل اللغوي بسرعة و إعطاء رسائل خطأ جيدة.

المكان الوحيد الذي يصبح فيه هذا مملاً بعض الشيء هو عندما يكون لديك لغة بها عوامل تشغيل infix مع العديد من مستويات الأسبقية المختلفة.لذلك تريد ورقة ديف هانسون تحليل النسب العودي المضغوط للتعبيرات.ربما تحتوي سلسلة تقارير Princeton التقنية على نسخة مجانية، ويمكنك دائمًا الاطلاع على الكود الموجود فيها الواجهة الأمامية لهانسون C.

نصائح أخرى

BNF بحد ذاته بسيط، لكن عليك أن تعتاد على الطريقة التي يفكر بها مؤلفو المترجمات.إنها ليست بالضرورة سهلة القراءة، ولكن فيما يلي ملاحظات محاضرات من جامعة كاليفورنيا في بيركلي وستانفورد.

هنا هو محلل ebnf في PHP.

كما أن تعلم القليل عن كيفية تنفيذ محركات التعبير العادي قد يكون مفيدًا.يحاول: إعادة2.

حسنًا، أعتقد أن ويكيبيديا هي الطريقة الأبسط لسببين:

  • ويذكر النقاط الأكثر صلة بالمقالة
  • لديها روابط لمزيد من القراءة في أسفل الصفحة

كما أود أن أقترح قراءة ستاندارت BNF فقط للتعرف على الفكرة وراء ذلك.

على الأقل، أبدأ دائمًا باستخدام ويكيبيديا أيضًا، وهذا يساعدني دائمًا تقريبًا.

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