第四章 走 词法分析.pptVIP

  • 2
  • 0
  • 约1.36万字
  • 约 104页
  • 2019-03-09 发布于福建
  • 举报
第四章 走 词法分析

词法分析 第四章 词法分析 主要内容 本章将讨论词法分析程序的设计原则,单词的描述技术,识别机制及词法分析程序的自动构造原理。 4.1 词法分析程序 4.2 单词的描述工具 4.3 有穷自动机 4.4 正规式和有穷自动机的等价性 4.5 正规文法和有穷自动机的等价性 4.6 词法分析程序的自动构造 回顾什么是词法分析程序 实现词法分析(lexical analysis)的程序 逐个读入源程序字符并按照构词规则切分成一系列单词。 单词是语言中具有独立意义的最小单位,包括保留字、标识符、运算符、标点符号和常量等。 词法分析是编译过程中的一个阶段,在语法分析前进行 。也可以和语法分析结合在一起作为一遍,由语法分析程序调用词法分析程序来获得当前单词供语法分析使用。 词法分析程序和语法分析程序的关系 词法分析的任务 词法分析程序与语法分析程序的接口方式 词法分析程序作为独立的一遍,把字符流的源程序变为单词序列,输出在一个中间文件上,这个文件作为语法分析程序的输入继续编译过程。 把词法分析程序设计成一个子程序,每当语法分析程序需要一个单词时,则调用该子程序。词法分析程序每得到一次调用,便从源程序文件读入一些字符,直到识别出一个单词,或说直到下一个单词的第一个字符为止。 词法分析的输出 词法分析的功能是读入源程序,输出单词符号。 输出的单词符号一般分成5种: 1. 关键字(基本字) 2. 标识符 3. 常数 4. 运算符 5. 界符 词法分析程序所输出的单词符号采用二元式表示:(单词种别, 单词自身的值) 词法分析的输出举例 设标识符编码为1, 常数为2, 关键字为3, 运算符为4, 界符为5 程序段: if i=5 then x:=y; 输出 (3, ‘if’) (1, 指向i的符号表入口) (4, ‘=’) (2, ‘5’) (3, ‘then’) (1, 指向x的符号表入口) (4, ‘:=’) (1, 指向y的符号表入口) (5, ‘;’) 词法分析工作从语法分析工作独立出来的原因 简化设计 改进编译效率 增加编译系统的可移植性 单词的描述工具 程序设计语言中的单词是基本语法符号。单词符号的语法可以用有效的工具加以描述,并且基于这类描述工具,可以建立词法分析技术,进而可以建立词法分析的自动构造方法。 正规文法 正规式 有穷自动机 正规文法 回顾一下3型文法,设文法G=(VN, VT, P, S), 若P中每一个产生式都是A→aB或A→a,其中A, B∈VN,a∈VT* ,则G是一个3型文法或正规文法。 各类单词的正规文法描述 标识符 →l | l字母数字 字母数字 →l | d | l字母数字 | d字母数字 无符号整数 →d | d无符号整数 运算符 →+ | - | * | / | = | 等号 | 等号…… 等号 →= 界符 →, | ; | ( | ) | …… 其中l表示a~z中的任何一个英文字母,d表示0~9中的任何一个数字 各类单词的正规文法描述 无符号实数 〈无符号实数〉→ d〈余留无符号数〉| . 〈十进小数〉| e〈指数部分〉 〈余留无符号数〉→ d〈余留无符号数〉| . 〈十进小数〉| e〈指数部分〉|ε 〈十进小数〉 → d 〈余留十进小数〉 〈余留十进小数〉 → e〈指数部分〉| d 〈余留十进小数〉| ε 〈指数部分〉 → d 〈余留整指数〉| s〈整指数〉 〈整指数〉 → d 〈余留整指数〉 〈余留整指数〉 → d 〈余留整指数〉 |ε 其中s表示正或负号。 如 25.55e+5 和 2.1 正规式 正规式也称正则表达式,正规表达式(regular expression)是说明单词的模式(pattern)的一种重要的表示法(记号),是定义正规集的数学工具。我们用以描述单词符号。 下面是正规式和它所表示的正规集的递归定义。 正规式的定义 定义(正规式和它所表示的正规集): 设字母表为?,辅助字母表?`={?,?,?,?,?,?,?}。 1。 ?和?都是?上的正规式,它们所表示的正规集分别为{?}和{ }; 正规式的定义 2。任何a? ?,a是?上的一个正规式,它所表示的正规集为{a}; 3。假定e1和e2都是?上的正规式,它们所表示的正规集分别为L(e1)和L(e2),那么,(e1), e1? e2, e1?e2, e1?也都是正规式,它们所表示的正规集分别为L(e1), L(e1)?L(e2), L(e1)L(e2)和(L(e1))?。 4。仅由有限次使用上述三步骤而定义的表达式才是?上的正规式,仅由这些正规式所表示的集合才是?上的正规集

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档