编译原理-第二章 一个简单的语法指导编译器-2.3 语法定义
方知有 人气:1语法定义:
- 文法定义:
- 定义:用以描述程序设计语言语法的表示方法——“上下文无关文法”,简称“文法”,文法自然地描述了大多数程序设计语言构造地层次化语法结构
- 实例:
- 如果用变量expr来表示表达式,用变量stmt表示语句,则
-
- 相关概念:
- 产生式:使用箭头(→)表示"可以具有如下形式",用相关变量表示表达式和语句的构造规则产生的式子。每个生产式包括一个称为生产式头或左部的非终结符号,一个箭头,和一个称为生产式体或右部的由终结符号组成的序列。
- 终结符号:有时也称为词法单元,终结符号是该文法所定义的语言的基本符号的集合
- 字母表中的小写字母,如 a,b,c
- 黑体串,关键字,如 id, while
- 数字 0, 1, … , 9
- 标点符号,如括号,逗号等
- 运算符号,如+, -等
- 空串:零个终结符号组成的串,记为ε
- 有时也称为语法变量,每个非终结符号表示一个终结符号串的集合
- 表示终结符号的序列的变量,如expr和stmt这样的变量
- 字母表中的大写字母,如 A, B, C
- 字母 S,并且通常代表开始符号
- 小写字母的名字(斜体),如 expr, stmt
- 组成:
- 终结符号集合
- 非终结符号集合
- 产生式集合
- 开始符号∈非终结符号集合
- 书写规定:
- 字母表中后面的大写字母,如X, Y, Z, 可以是终结符或非终结符
-
- 字母表中后面的小写字母,如u, v,… z, 可代表终结符号串
- 小写希腊字母,如a,b,可代表文法的符号串
- 对于A →a1,A→ a2,… A →an可以写成Aa1|a2|…|an
- 除非特别说明,第一个产生式的头就是开始符号
- 推导:
- 语法分析树:
- 二义性:
- 运算符的结合性:
- 运算符的优先级:
加载全部内容