2017-08-28 67 views
1

Context free grammar定義的四個組成部分開始symbol`:是'目標symbol`同樣的事情在`上下文無關文法

  • 一組非終端(V)的...

  • 一組令牌,稱爲終端碼元(Σ)的...

  • 一組生產(P)的...

  • 其中一個非終端被指定爲開始符號(S);從 開始生產。

The EcmaScript specification沒有提到開始符號,而是提到了目標符號

從由單一的傑出 非終結的句子開始,被稱爲目標符號,給定的上下文無關語法 指定語言,即,可能由重複 替換序列中的非終端與非終端爲左側的生產的右側的可能的 終端符號序列(可能無限)。

從這個定義我也許可以得出結論:這一目標符號實際上是一個開始符號只是一個名稱,但goal symbol名稱使用,因爲有不同的起始符號「類別」:

在幾種情況下,詞彙輸入 元素的識別對消耗輸入元素的句法語法上下文敏感。這要求詞彙語法的多個目標符號爲 。

那麼目標符號是CFG上下文中的開始符號的另一個名稱?

+0

什麼是接近的選票的原因是什麼? –

+0

可能是因爲它超出了常見的SO回答者的知識嗎? ;) –

+0

@Jonasw,是的,我仍然希望有人瞭解該級別的EcmaScript –

回答

1

你引用的只是CFG的一個定義 - 還有其他的定義。例如,從here

一個語法是4元組:

  1. 一組終端符號(即,語言的有效「字」)。
  2. 一組非終端符號(即語言的「詞性」)。
  3. 一套規則被稱爲生產它可以將每個非終端轉換成一個終端序列。
  4. 開始符號目標符號,非端以產生(例如,在英國:把「句子」)。

從我粗略的網絡搜索,似乎在討論解析器當術語「目標符號」更常用。我猜這是因爲有自下而上的解析器,例如LR-parsers,其中算法沒有開始與目標符號。

順便說一句,從ECMAScript的規範的特定段落似乎從Java Language Specification字面拷貝 - 這樣你就可以對他們的指責什麼:-)

+0

感謝您的確認! _似乎從字面上從Java語言規範複製 - 這也是我注意到的。 @Pointy建議我開始看Java規範,並注意到完整的段落類似於單詞。 –