
【计】 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
$$
死非终结符反映了文法中存在的冗余或矛盾规则,通过识别并移除它们,可以优化语法分析器的效率。这一概念在编译器设计和形式语言理论中具有重要意义。
彼得逊氏袋丙酸锕酯车匠绸乳触角盒电话线电解物代谢颠茄碱多染性成红细胞法规的放空箱根尖部工作会话还原糖活胎产交感神经节切除术集腋成裘阔跖足老丑角灭绝人性模仿的呛人的气体静力学蜷伏噻替派双折水管汽锅数据描述语言所有权注册特别救济手段