本文共 1114 字,大约阅读时间需要 3 分钟。
什么是语法?
语法是程序形式结构的规则集合,定义了程序的描述方式。它包括词法规则和语法规则两部分。
词法规则定义单词符号的形成规则,主要包括:
语法规则定义语法单位的形成规则,通常包括:
什么是语义?
语义是程序意义的规则集合,描述程序执行的目的和结果。常用的描述方法有:
文法是描述语言语法结构的规则体系,强调语言形式的规范性。常用于处理自然语言的例子:(示例:句子 "He gave me a book." 的文法规则)
(示例图片:语法单元、语法树、推导过程等)
上下文无关文法(CFG)是一个由四元组 G = (VT, VN, S, P) 定义的形式语言体系,其中:
其特点是产生式中的 P 可以由终结符 a(阿尔法)自由替换,无需依赖上下文。
例如,定义仅包含 "+" 和 "*" 的算术表达式文法:
G = ( {i, +, *, (, )}, {E}, E, P )
其中 P 的产生式为:
推导过程是从一个句型到另一个句型的过程,可能不唯一。可能使用最左推导或最右推导(最右推导也称为规范推导)。
推导过程:
文法推导的结果通常以语法树的形式呈现。语法树不唯一意味着文法可能具有二义性。
文法的二义性(Ambiguity)是指同一个文法推导可能产生两个或多个不同的语法树。
(示例图片:二义性所致的语法树差异)
乔姆斯基在 1956 年提出了形式语言体系,包含四种文法类型:
型 2 和 型 3 文法的主要区别在于是否允许自由移动非终结符。
型 0 和 型 1 文法应用广泛,常用于描述上下文无关文法限定产生式的语法规则。
转载地址:http://wxbyk.baihongyu.com/