5 Notational Conventions 5符號慣例
- 詳細內容
- 分類:ECMA-262 第五版
- 發佈:2013-04-13, 週六 11:09
- 點擊數:1682
5 Notational Conventions
5符號慣例
5.1 Syntactic and Lexical Grammars
5.1句法和詞彙語法
5.1.1 Context-Free Grammars
A context-free grammar consists of a number of productions. Each production has an abstract symbol called a nonterminal as its left-hand side, and a sequence of zero or more nonterminal and terminal symbols as its right-hand side. For each grammar, the terminal symbols are drawn from a specified alphabet.
Starting from a sentence consisting of a single distinguished nonterminal, called the goal symbol, a given context-free grammar specifies a language, namely, the (perhaps infinite) set of possible sequences of terminal symbols that can result from repeatedly replacing any nonterminal in the sequence with a right-hand side of a production for which the nonterminal is the left-hand side.
5.1.1上下文無關文法
上下文無關文法是由許多產生式所組成,每個產生式都有一個被稱之為非終結符號的抽象符號作為其左側,以及一連串的0個或多個非終端與終結符號當作其右側。對每個文法而言,終結符號是由具體指定的符號表取出。
由一個單一被識別的非終結符號-目標符號,組成的句子開始,一個被給定的上下文無關文法指出一個語言,那就是,終結符號可能的順序組合(可能是無限多組),這種組合可以藉由重複的以非終結符號在左手邊的產生式的右手邊替換任何在句中的非終結符號而產生。
翻譯註解:
看得懂得真是神人 >"< 我都不知道這該怎麼翻。
上下文無關文法:幾乎所有程式語言都是通過上下文無關文法來定義,因為它有足夠的能力來表達程式語言的文法,很明顯,ECMAScript也不例外,也是使用上下文無關文法來表達文法定義。
終結符號:不會等於其他符號,也就是說不會被帶入其他值。
來看個例子好了,現在給定2個各自獨立的文法,稱之為上下文無關文法。
S=aSb
跟
S=ba
a跟b是終結符號,S是非終結符號。
現在把S=aSb帶入S=aSb中那會得到 S=aaSbb,再帶進去S=aaaSbbb,一直重複下去有好無限多組組合,始終帶有一個非終結符號S。
現在嘗試把S=ba帶入那可能得到 S=abab , S=aababb, S=aaababbb 等等不帶有非終結符號的組合。
維基:形式文法
維基:上下文無關文法