终端和非终端符号
编辑在计算机科学中,终端和非终端符号是用于指定构成形式语法的生产规则的词汇元素。终端符号是形式语法所定义的语言的基本符号。非终端符号(或句法变量)根据生产规则被终端符号组所取代。一个特定语法的终端和非终端是两个不相交的集合。
终端符号
编辑终端符号是可能出现在形式化语法的生产规则输出中的文字符号,不能用语法的规则来改变。将规则递归地应用于源符号串,通常会以最终输出串只由终端符号组成而告终。考虑一个由两个规则定义的语法。使用象形符号相互作用。符号ר可以变成ди符号ר可以变成д这里д是一个终端符号,因为没有规则可以把它变成别的东西。另一方面,有两条规则可以改变它,因此它是非终端的。由特定语法定义或生成的形式语言是由语法产生的、仅由终端符号组成的字符串的集合。
非终端符号
编辑非终端符号是那些可以被替换的符号。它们也可以简单地称为句法变量。形式化语法包括一个起始符号,即非终端符号集的指定成员,语言中的所有字符串都可以通过连续应用生产规则来衍生。事实上,一个语法所定义的语言正是可以这样推导出来的终端字符串的集合。无语境语法是指每个生产规则的左手边只由一个非终端符号组成的语法。这个限制是不简单的;不是所有的语言都能由无语境语法生成。那些可以生成的语言被称为无语境语言。这些正是可以被非确定性推倒自动机识别的语言。无语境语言是大多数编程语言的语法的理论基础。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/164164/