
【計】 dead nonterminal
***; end up; meet one's death; pass away; extremely; implacable; fixed; rigid
impassable
【醫】 thanato-
blame; evildoing; have to; non-; not; wrong
【計】 negate; NOT; not that
【醫】 non-
end; end-all; expiry; finality; finis; windup
【計】 terminating
accord with; symbol
在計算語言學和形式語法領域,"死非終結符"(Dead Non-terminal)指在上下文無關文法(Context-Free Grammar, CFG)中永遠無法推導出終結符序列的非終結符。其核心特征如下:
無法生成有效字符串
若文法中存在非終結符 (A),且不存在任何推導序列 (A xRightarrow{} w)(其中 (w) 為終結符組成的字符串),則 (A) 為死非終結符。
示例*:
給定文法規則:
(S to aSb mid A)
(A to B)
(B to B)
其中 (A) 和 (B) 均無法推導出終結符串,故均為死非終結符。
與"無用符號"的關系
死非終結符屬于"無用符號"(Useless Symbols)的子類。無用符號包含兩類:
中文術語 | 英文對應 | 定義描述 |
---|---|---|
死非終結符 | Dead Non-terminal | 在形式文法中,無法通過任何推導過程産生終結符串的非終結符。 |
非終結符 | Non-terminal Symbol | 文法中可被替換為其他符號(終結符或非終結符)的變量,代表語法結構單元。 |
終結符 | Terminal Symbol | 文法中不可再分解的基礎符號,構成語言的實際字符串(如單詞、字符)。 |
Alfred V. Aho 等學者在經典教材中定義死非終結符為"無法生成任何終結字符串的非終結符",并給出算法實現(§4.4.2)。
→ 豆瓣讀書鍊接(驗證書籍存在性)
Peter Linz 系統闡述無用符號的數學定義及消除方法(Chapter 3)。
→ 豆瓣讀書鍊接
将"Dead Non-terminal"歸類為形式語言理論的核心術語(IEEE Std 1003.1-2017)。
→ IEEE Xplore 術語庫(需訂閱訪問)
在編譯原理中,"死非終結符"(或稱"無用非終結符")指文法中無法通過任何推導生成終結符串的非終結符。這類符號會導緻文法冗餘,通常需要被剔除以簡化文法結構。具體特征如下:
無法生成終結符序列
如果非終結符A的所有産生式規則都無法推導出僅由終結符組成的字符串,則A是死非終結符。例如:
與文法起始符無關
即使某個非終結符能生成終結符串,但若無法從文法起始符推導出該符號,它也可能被視為無效(不過嚴格來說,這類符號稱為"不可達符號",與死非終結符略有區别)。
文法規則:
$$
S → A|B
A → aA|a
B → C
C → B
$$
死非終結符反映了文法中存在的冗餘或矛盾規則,通過識别并移除它們,可以優化語法分析器的效率。這一概念在編譯器設計和形式語言理論中具有重要意義。
愛克列斯一喬丹電路氨苄噻吡酯菜單驅動程式生成程式籌滇荊芥屬二乙碳酰嗪分批連續傳輸酚醛樹脂A固定氮法矽長石混波器霍地交互偏極化精密地極譜儀酒精水溶液流體動力學階段洛日埃氏疝農具氫過電位熱的除去鞣酸囊深度圖神經節實時輸入水中熟化數據壓縮逃稅人頭懸吊外圍鍊路