本區搜索:
Yahoo!字典
打印

[ICT] About BNF syntax question

About BNF syntax question

我想知道以下題目比較快速的判斷方式,不知有哪個小卒願意提供一下?我只會用parse tree分解
(若有畫錯也告訴我一下,自學的比較容易搞錯 )

題目:
引用:
Consider the following grammer in BNF:
<exp>=<term>+<term>|<exp>-<term>
<term>=<factor>|<term>*<factor>|<term>/<factor>
<factor>=<id>


Which of the following sentences are in the language generated by this grammar? Explain your answers.
(a) id-id*id+id
(b) id*id-id+id
(c) id+id*id-id
(d) id*id+id+id

Ans: (c)
I try to draw a parse tree as follows
1. id*id+id*id


2. id+id*id-id


[ 本帖最後由 HSH 於 2014-7-25 01:28 PM 編輯 ]
附件: 您所在的用戶組無法下載或查看附件
   

TOP

[隱藏]
(1) Your choices do not have id*id+id*id. But you are correct.

(a) 睇加號先 , 你會發現乘號之前個 <term> 唔會出現減數.
睇減號先 , 你會發現減號之後個 <term> 唔會出現 <exp>.

(b) 睇加號先 , 你會發現乘號之後個 <factor> 唔會出現減數.
睇減號先 , 你會發現減號之後個 <term> 唔會出現 <exp>.

(c) 睇加號先 , 你會發現乘號之後個 <factor> 唔會出現減數.

睇減號先 ,  id+id*id-id , 你會得到紅色 -> 綠色 -> 藍色.

<exp>=<term>+<term>|<exp>-<term>
<term>=<factor>|<term>*<factor>|<term>/<factor>
<factor>=<id>

(d) 睇第一個加號先 , 你會發現加號之後個 <term> 唔會出現加數.
睇第二個加號先 , 你會發現乘號之後個 <factor> 唔會出現加數.

[ 本帖最後由 tony625 於 2014-7-28 09:41 PM 編輯 ]

TOP

Thank you very much.
I will practice the problem by the way again and again.

TOP

其實你睇緊咩 ? 想知 , dragon book 都唔錯 @@

TOP

重要聲明:小卒資訊論壇 是一個公開的學術交流及分享平台。 論壇內所有檔案及內容 都只可作學術交流之用,絕不能用商業用途。 所有會員均須對自己所發表的言論而引起的法律責任負責(包括上傳檔案或連結), 本壇並不擔保該等資料之準確性及可靠性,且概不會就因有關資料之任何不確或遺漏而引致之任何損失或 損害承擔任何責任(不論是否與侵權行為、訂立契約或其他方面有關 ) 。