词法分析I.pptVIP

  • 4
  • 0
  • 约3.57千字
  • 约 28页
  • 2017-04-09 发布于江苏
  • 举报
词法分析I

中国科大 编译原理和技术 本讲纲要 词法分析概念 词法记号的描述 第二章 词法分析 本章内容 词法分析器:把构成源程序的字符流翻译成记号流,还完成和用户接口的一些任务 介绍正规式、状态转换图和有限自动机概念 Lex与词法分析器的自动生成 词法分析:编译第一步 看一个中文的句子 词法分析:编译第一步 C语言的语句例子 词法单元、词法记号 词法单元 又称单词,是编程语言中合法的字符串 词法单元、词法记号 词法单元 又称单词,是编程语言中合法的字符串 词法记号 满足某种规则的词法单元,采用同一种记法——词法记号。 词法单元与词法记号 满足一个给定规则的词法单元,被记为一个词法记号 词法模式 C语言的标识符 ? x2, 12, _12, _abc 哪些是合法的C标识符? 词法模式 词法记号 词法单元例举 模式的非形式描述 STRUCT struct struct FOR for for RELOP , = , = , … 或 = 或 = 或 … ID sum, _12, _x _或字母开头的 由_、字母和数字组成的串 NUM 3.1, 10, 2.8 E12 任何数值常数 LITERAL “seg. error” 引号“和”之间的任意字符 串,但引号本身除外 词法记号的属性 词法记号的属性 如果简单地把词法记号流传给语法分析器,会产生什么后果? 语义被完全摒弃,只剩下一个语法结构 词法记号的属性 每个词法记号具有一定的含义(属性) 课后练习 prog1: 编写一个程序,用于统计文件中单词的总数,不同单词的数目。 eg: I love Dalian and I love DLUT 单词总数:7 不同单词数目:5 本讲纲要 词法分析概念 词法记号的描述 词法记号的描述与识别 词法模式的表示方法,是词法记号描述的核心 下面是用于描述词法记号的模式语言 2.2 词法记号的描述与识别 2.2.1 串和语言 字母表:符号的有限集合, 例:? = {0,1} 串:符号的有穷序列,例:0110,? 语言:字母表上的一个串集 {?,0,00,000,…}, {?}, ? 2.2 词法记号的描述与识别 2.2.1 串和语言 串的运算 连接 xy,s? = ?s = s 积(指数) s0为?,si为si -1s(i 0) 2.2 词法记号的描述与识别 语言的运算 和:L∪M = {s | s ?L 或 s ? M } 连接:LM = {st | s ? L 且 t ? M} 指数:L0是{? },Li是Li -1L 闭包:L? = L0 ∪ L1 ∪ L2 ∪… 正闭包: L+ = L1 ∪ L2 ∪… 例2.2(p14) L: { A, B, …, Z, a, b, …, z }, D: { 0, 1, …, 9 } L∪D, LD, L6, L*, L(L∪D )*, D+ 2.2 词法记号的描述与识别 2.2.2 正规式 正规式:按照一组定义规则,由较简单的正规式构成的,每个正规式 r 表示一个语言 L(r).定义规则说明 L(r) 是怎样以各种方式从 r 的子正规式所表示的语言组合而成。 正规式用来表示简单的语言,叫做正规集。 2.2 词法记号的描述与识别 2.2.2 正规式 正规式 定义的语言 备注 ? {?} a {a} a ? ? (r) | (s) L(r)∪L(s) r和s是正规式 (r)(s) L(r)L(s) r和s是正规式 (r)* (L(r))* r是正规式 (r) L(r) r是正规式 运算符的优先级: * 连接运算 | 2.2 词法记号的描述与识别 正规式的例子 ? = {a, b} a | b {a, b} (a | b) (a | b ) {aa, ab, ba, bb} aa | ab | ba | bb {aa, ab, ba, bb} a* 由字母a构成的所有串集 (a | b)* 由a和b构成的所有串集 2.2 词法记号的描述与识别 2.2.3 正规定义 对正规式命名,使表示简洁。 d1 ? r1 d2 ? r2 . . . dn ? rn 各个di的名字都不同 每个ri都是? ?{d1, d2, …, di-1 }上的正规式 2.2 词法记号的描述与识别 正规定义的例子 Pascal语言的标识符集合 letter ? A | B | … | Z | a | b | … | z digit ? 0 | 1 | … | 9 id ? lette

文档评论(0)

1亿VIP精品文档

相关文档