Context-Free Grammer
- 前端 :以语法分析器为核心,重心在分析;综合不是重点?》
| 概念 | 总结 | 
|---|---|
| 上下文无关文法 (CFG) | 一个理论模型。它可以通过多种方式实例化,如BNF文本、语法树、语法图或数学元组。 | 
| BNF | 一种符号工具。它主要用于描述CFG,但也可以借用来描述其他具有递归和层次化结构的事物。 | 
- 分析阶段:围绕语法展开。
- 语法语义 即
| 内容 | 描述方法 | ||
|---|---|---|---|
| 语法 | 描述该语言程序的正确形式 | CFG | |
| 语义 | 定义了程序的含义每个程序在运行时做什么事情 | 非形式化描述和启发性的示例(现有的语义表示方法难度大) | 
形式语言
CFG的形式化定义。文法 grammer?一个CFG G 被定义为一个四元组 (V, Σ, R, S):
- 
V:非终结符的有限集合。这些是表示语法类别的变量(如 <表达式>,<语句>),用尖括号< >表示。它们是“工厂”,最终会生产出由终结符组成的字符串。vector
- 
Σ:终结符的有限集合(即你的图片中的字母表)。这是构成语言最终句子的基本符号(如 if,+,,,id)。V ∩ Σ = φ(非终结符和终结符不能重名)。
- 
R:产生式规则的有限集合。这是文法的核心,规定了如何从非终结符生成符号串。 - 
每条规则的形式是:A → β,其中: - 
A ∈ V(一个非终结符)
- 
β ∈ (V ∪ Σ)*(一个由非终结符和终结符组成的字符串)
 
- 
- 
这就是连接积 UV 的应用! 规则 A -> B C可以理解为:A生成的语言,是B生成的语言和C生成的语言的连接积。
 
- 
- 
S:开始符号。这是一个特殊的非终结符 (S ∈ V),它是整个句子推导的起点(如 <程序>)。最大
ppt 9
- 类比与 数字的0次方=1,0次连接被定义为空串miu组成的集合.代表连接的单位元
| 概念 | 公式 | 含义 | 类比(以字母表 ∑ = {a, b} 为例) | 
|---|---|---|---|
| V^n | V 连接 n 次 | V^2:所有长度为2的字符串{"aa", "ab", "ba", "bb"} | |
| V* | V^0 ∪ V^1 ∪ V^2 ∪ ... | 0次或多次连接 | 所有字符串(包括空字符串)的集合 | 
| ** V+**正则positive | VV* | 1次或多次连接 | 所有非空字符串的集合 | 
- 文法定义的语言: 从开始符号推倒得到的所有终结符号串的集合。;又:任何能够由某棵语法分析树生成的符号串的集合。
- 相应语法分析的概念: 接受一个终结符号串作为输入,找出从文法的开始符号推导出这个串的方法。;又 : 为一个给定的终结符号串构建一颗语法分析树的过程
| factor | 不能被任何运算符分开的表达式 | 
| 项数(term)不是因子 | 可能被高优先级的运算符* / 分开,但不能被低优先级运算符分开 | 
| 表达式() 即不是因子也不是项 | 可能被任何一个运算符分开 |