《编译原理》课程教学资源:第二章(2-3-1)对于词法分析器的要求

词法分析 231对于词法分析器的要求 词法分析器的功能和输出形式 ●功能:输入源程序、输出单词符号 ●输出的单词符号的表示形式: (单词种别,单词自身的值) 单词符号的种类: 基本字:如 begin, repeat,, ●标识符表示各种名字:如变量名、数组 名和过程名 常数:各种类型的常数 ●运算符:+,-,*,/, °界符:逗号、分号、括号和空白
2.3.1 对于词法分析器的要求 一、词法分析器的功能和输出形式 功能:输入源程序、输出单词符号 输出的单词符号的表示形式: (单词种别,单词自身的值) 单词符号的种类: ⚫ 基本字:如 begin,repeat, ⚫ 标识符——表示各种名字:如变量名、数组 名和过程名 ⚫ 常数:各种类型的常数 ⚫ 运算符:+,-,*,/, ⚫ 界符:逗号、分号、括号和空白 词法分析

例C程序 while(i=jiai e输出单词符号:
例 C程序 while (i>=j) i--; 输出单词符号: <>=, ->

例F0 RTRAN程序 IF(5. EQ M)GOTO 100 输出单词符号: 逻辑IF(34, 左括号(2, 整常数(20,“5的二进制) 等号 (6,-) 标识符(26,“M) 右括号(16, GOTO (30,-) 标号 (19,(100的二进制)
例 FORTRAN程序 IF (5.EQ.M) GOTO 100 输出单词符号: 逻辑IF (34,-) 左括号 (2,-) 整常数 (20, ‘5’的二进制) 等号 (6,-) 标识符 (26, ‘M’) 右括号 (16,-) GOTO (30,-) 标号 (19, ‘100’的二进制)

词法分析器与语法分析器的关系 单词符号 源程序词法分 语法分 析器 析器 取下一单词 符号表
词法分析器与语法分析器的关系 词法分 析器 语法分 析器 符号表 源程序 单词符号 取下一单词

2.3,2词法分析器的设计 预处理 输入列表 子程序仁输入缓冲区 扫描器-扫描缓冲区 单词符号 词法分析器的结构
词法分析器的结构 预处理 子程序 扫描器 输入缓冲区 扫描缓冲区 单词符号 输入 列表 2.3.2 词法分析器的设计

、输入、预处理 ●输入串放在输入缓冲区中。 ●预处理子程序:剔除无用的空白、跳格 回车和换行等编辑性字符;区分标号区、 捻接续行和给出句末符等 ●扫描缓冲区 起点搜索 指示器指示器
输入串放在输入缓冲区中。 预处理子程序:剔除无用的空白、跳格、 回车和换行等编辑性字符;区分标号区、 捻接续行和给出句末符等 扫描缓冲区 ↑ ↑ 起点 搜索 指示器 指示器 一、输入、预处理

二、单词符号的识别:超前搜索 1基本字识别 例如 FORTRAN语言中关键字不加以特殊保护: DO99K=1,10 2(D099K=1.10 3 IF(5.EQ M)GOT055 4IF(5)=55 5IF(M)10,5,6 ●都正确,需要超前搜索才能确定哪些是基本字
二、单词符号的识别:超前搜索 1 基本字识别: 例如FORTRAN语言中关键字不加以特殊保护: 1 DO99K=1,10 2 DO99K=1.10 3 IF(5.EQ.M)GOTO55 4 IF(5)=55 5 IF(M)10,5,6 都正确,需要超前搜索才能确定哪些是基本字

单词符号的识别:超前搜索 逻辑语句的一般形式: IF〈条件〉语句 例:|F(NLE100)N=N+1 ●算术语句 ●一般形式:IF〈算术表达式〉N1,N2,N3 当算术表达式的值小于0时执行标号为N的语句, 等于0时执行标号为N2的语句,大于0时执行标号为 N3的语句
单词符号的识别:超前搜索 逻辑IF语句的一般形式: ⚫ IF〈条件〉 语句 ⚫ 例:IF (N.LE.100) N=N+1 算术IF语句 ⚫ 一般形式: IF〈算术表达式〉 N1,N2,N3 ⚫ 当算术表达式的值小于0时执行标号为N1的语句, 等于0时执行标号为N2的语句,大于0时执行标号为 N3的语句

2标识符识别 字母开头的字母数字串,后跟界符或算符 3常数识别 识别出算术常数并将其转变为二进制内码表 示。有些也要超前搜索。 5. EQ M 5.E08 ●逻辑常数和用引号括起来的字符串常数一般 都好识别,但 FORTRAN的文字常数的识别较麻 烦,如:3HABC ●当分析器读到尾跟H的无符号常数时要先把该常 数的值翻译出来,然后把H后的n个字符作为字 符串常数输出
2 标识符识别: ⚫ 字母开头的字母数字串,后跟界符或算符 3 常数识别: ⚫ 识别出算术常数并将其转变为二进制内码表 示。有些也要超前搜索。 5.EQ.M 5.E08 ⚫ 逻辑常数和用引号括起来的字符串常数一般 都好识别,但FORTRAN的文字常数的识别较麻 烦,如:3HABC。 ⚫ 当分析器读到尾跟H的无符号常数时要先把该常 数的值翻译出来,然后把H后的n个字符作为字 符串常数输出

4算符和界符的识别 把多个字符符合而成的算符和界符拼合成 个单一单词符号 米米,.EQ.,++
4 算符和界符的识别 ⚫ 把多个字符符合而成的算符和界符拼合成一 个单一单词符号。 :=, **, .EQ. , ++,--,>=
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《编译原理》课程教学资源:第二章 词法分析 2.6 利用Lex自动生成扫描程序.ppt
- 《编译原理》课程教学资源:第二章 语言描述与实现 Language Description and Implementation 2.1 程序语言的语法描述.ppt
- 《编译原理》课程教学资源:第一章(1-2)编译简介.ppt
- 《编译原理》课程教学资源:语义分析和中间代码产生.ppt
- 《编译原理》课程教学资源:Chapter 5 Procedure Activations.ppt
- 《互联网软件应用与开发》综合复习材料.doc
- 《计算机电路基础》课程教学资源(PPT课件讲稿)第四章 门电路.ppt
- 《计算机电路基础》课程教学资源(PPT课件讲稿)第六章 时序逻辑电路.ppt
- 《计算机电路基础》课程教学资源(PPT课件讲稿)第五章 组合逻辑电路.ppt
- 《计算机电路基础》课程教学资源(PPT课件讲稿)第二章 半导体基本器件.ppt
- 《计算机电路基础》课程教学资源(PPT课件讲稿)第三章 开关理论基础.ppt
- 《计算机电路基础》课程教学资源(PPT课件讲稿)第七章 存储器和可编程逻辑器件.ppt
- 《计算机电路基础》课程教学资源(PPT课件讲稿)第一章 课程简介.ppt
- 清华大学:《数据通信原理》课程教学资源(学习讲义)软件无线电体系结构的新趋势.doc
- 清华大学:《数据通信原理》课程教学资源(学习讲义)超宽带无线通信技术及发展.doc
- 清华大学:《数据通信原理》课程教学资源(学习讲义)第12讲 无线系统及网络.ppt
- 清华大学:《无线通信工程》第10讲 抗衰落.ppt
- 清华大学:《无线通信工程》第09讲 多址2.ppt
- 清华大学:《无线通信工程》第08讲 多址1.ppt
- 清华大学:《无线通信工程》第07讲 信道编码.ppt
- 《编译原理》课程教学资源:第三章 正则表达式常应用于文本匹配:.ppt
- 《JavaScript》权威指南简介.ppt
- 《编译原理》课程教学资源:第二章(2-4)语法分析一自上而下分析.ppt
- 《编译原理》课程教学资源:第二章(2-4-1)One parse tree only.ppt
- 《编译原理》课程教学资源:第五章 YACC.ppt
- 《编译原理》课程教学资源:第四章 对象和环境.ppt
- 《编译原理》课程教学资源:第八章 符号表.ppt
- 《编译原理》课程教学资源:第六章 属性文法.ppt
- 《编译原理》课程教学资源:第五章(5-2)过程激活.ppt
- 《编译原理》课程教学资源:第二章 语言描述与实现 Language Description and Implementation 2.5 语法分析——自下而上分析.ppt
- 《编译原理》课程教学资源:教学计划.doc
- 《编译原理》课程教学资源:第十章 优化.ppt
- 《编译原理》课程教学资源:属性文法.ppt
- 《体系结构》第二章 计算机指令集结构设计.doc
- 《体系结构》第三章 流水线技术.doc
- 《体系结构》第五章 存储层次.doc
- 《体系结构》第六章 输入输出系统.doc
- 《体系结构》第一章 计算机体系结构的基本概念.doc
- USB系统研究(学位论文)USB System Study.pdf
- 《微型计算机原理与接口技术》第10章 串行通信接口.ppt