الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعده في صيغة باكوس نور..

مغلقمُجاب
بدأه reeem في 18 أبريل 2014 · 5 رد · 2,110 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

شرح صيغة  باكوس نور.. bnf

تم تعديل هذه المشاركة بواسطة reeem في 18 أبريل 2014 في 21:10

1 −1
#2

لم أفهم ولا كلمة !

اكتبي ما تريدينه في Google وسيجيبك عن سؤالك

−1
#3

إقرئي المقالة التى تتحدث عن Backus–Naur Form من Wikipedia و ما لا تفهمينه اسئلي عنه و سيشرح لك إن شاء الله.

 

 

و الله ولي التوفيق

مدونتي: C++ Tips and Tricks

#4

هذي الجزئيه ماني فاهمتها في ملزمة  syntax and semantics

 

Grammars and derivations 

 

 

 

  • The sentences of the language are generated through a sequence of applications of the rules, beginning with a special nonterminal of the grammar called the start symbol.
  • A derivation is a repeated application of rules, starting with the start symbol and ending with a sentence (all terminal symbols)
  • An example grammar:

 

      <program> ® <stmts>

<stmts> ® <stmt> | <stmt> ; <stmts>

<stmt> ® <var> = <expr>

<var> ® a | b | c | d

<expr> ® <term> + <term> | <term> - <term>

<term> ® <var> | const

 

  • An example derivation:

 

<program> => <stmts> => <stmt>

                     => <var> = <expr> => a = <expr>

                     => a = <term> + <term>

                     => a = <var> + <term>

                     => a = b + <term>

                     => a = b + const

 

  • Every string of symbols in the derivation, including <program>, is a sentential form.
  • A sentence is a sentential form that has only terminal symbols.
  • A leftmost derivation is one in which the leftmost nonterminal in each sentential form is the one that is expanded.  The derivation continues until the sentential form contains no nonterminals.

A derivation may be neither leftmost nor rightmost

#5 أفضل إجابة

قاعدة الـbnf مثل قواعد اللغة العربية

 

الكلام: جملة فأكثر

الجملة: اسمية أو فعلية

اسمية: مبتدأ خبر

المبتدأ: كلمة

الخبر: مفرد أو جملة

... إلخ

 

قواعد اللغة العربية كثيرة وأشد تعقيد. لكن الملاحظ أن القواعد تتشعب.

 

الآن إذا أردت أن تتأكدين من أن الكلام سليم تمريرين جمل على هذه القواعد وإذا نجحت فهي سليمة (اشتقاق derivation).

 

لمعرفة أن الجملة a = b + const موافقة للقواعد:

<program> -> <stmts>
<stmts>   -> <stmt> | <stmt> ; <stmts>
<stmt>    -> <var> = <expr>
<var>     -> a | b | c | d
<expr>    -> <term> + <term> | <term> - <term>
<term>    -> <var> | const

تبدأين مع المدخل program، لاتوجد به إلا stmts، نأخذها:

<program> => <stmts>

الآن نرى stmts، هناك خيارين، الثاني <stmt> ; <stmts> غير مناسب لأن الجملة لدينا لايوجد فيها ;، نأخذ الأولى stmt:

<program> => <stmts>
          => <stmt>

الآن نرى stmt، في جملتنا علامة =، حتى الآن الجملة سليمة:

<program> => <stmts>
          => <stmt>
          => <var> = <expr>

الآن هناك خيارين، أن نشتق var (اشتقاق من اليسار left derivation) أو expr، (اشتقاق من اليمين right derivation)، كلهم يعطون نفس النتيجة، سأختار اليسار var، في var هناك خيارات a,b,c,d ولدينا a. حتى الآن الجملة سليمة:

<program> => <stmts>
          => <stmt>
          => <var> = <expr>
          => a = <expr>

أنهينا من في اليسار ننتفل لأول non-terminal على اليمين expr، هناك خيارين المناسب <term> + <term> لوجود علامة + لدينا:

<program> => <stmts>
          => <stmt>
          => <var> = <expr>
          => a = <expr>
          => a = <term> + <term>

نبدأ باليسار term، هناك خيارين <var> أو const الثاني غير مناسب نأخذ الأول <var>:

<program> => <stmts>
          => <stmt>
          => <var> = <expr>
          => a = <expr>
          => a = <term> + <term>
          => a = <var> + <term>

من var لدينا b، أنهينا هذا الجزء وننتقل للثاني:

<program> => <stmts>
          => <stmt>
          => <var> = <expr>
          => a = <expr>
          => a = <term> + <term>
          => a = <var> + <term>
          => a = b + <term>

الآن نعمل على <term> هنا const و <var>، ولدينا في الجملة const نأخذها:

<program> => <stmts>
          => <stmt>
          => <var> = <expr>
          => a = <expr>
          => a = <term> + <term>
          => a = <var> + <term>
          => a = b + <term>
          => a = b + const

انتهينا. الجملة سليمة وفق تلك القواعد.

2
#6

 الله يسعدك دنبا واخره..

هذا الموضوع مغلق.

مواضيع مشابهة