• 0
reeem

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

سؤال

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

تم تعديل بواسطه reeem
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

5 إجابة على هذا السؤال .

  • 0

قاعدة الـ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

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

-1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

 

 

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هذي الجزئيه ماني فاهمتها في ملزمة  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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .