版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章一个微小编译器,任课教师 王养廷,主要内容,基础知识 ToyL语言 ToyL词法分析程序,1 基础知识,词法分析的基础知识 基本符号 程序设计语言中使用的符号。 程序文本 源程序 程序文件 ASCII序列的源文件 语义单位 单词:源程序中独立的语义单位,1 基础知识(续),词法分析的基础知识 单词的分类 标识符,如:x, y1, length 保留字,begin, end, case, if 常数,2,30 运算符,+,-,等 界限符,(,),; 编辑符,空格、回车、换行,制表符,1 基础知识(续),程序片断示例 if score60 then writeln(fialed!); 该片断
2、中的单词,1 基础知识(续),词法分析的基础知识 Token 为了处理方便,对单词进行的编码,P10图 语义信息 Token中保留两类信息 类别信息:Token.class 语义信息:Token.seman,1 基础知识(续),词法分析的基础知识 Token程序实现 P10 typedef struct int class; char seman; position_in_File pos; Token_type,1 基础知识(续),词法分析的基础知识 读进字符 从源程序中读入的字符 用于得到单词 识别字符 判断字符是哪一类 使用函数 过滤格式 滤掉空格类字符,1 基础知识(续),词法分析的基
3、础知识 常数翻译 读入字符串 语义表示 字符串 数值 实际语言中可能还有类型 程序分析,1 基础知识(续),词法分析的基础知识 程序 void recognize_number(void) char digits10; dsp = 0; next_char(); while(is_digit(ch) digitsdsp+ =ch; next_ch(); digitsdsp = 0 Token.class = NUMBER; Token.seman = digits; ,1 基础知识(续),词法分析的基础知识 程序 void recognize_number(void) int n = 0; n
4、ext_char(); while(is_digit(ch) n = n * 10 + ch = 0; next_ch(); Token.class = NUMBER; Token.seman = n; ,1 基础知识(续),词法分析的基础知识 标识符 读入标识符 程序分析 保留字,1 基础知识(续),词法分析的基础知识 程序 void recognize_identifier(void) char name10; np = 0; next_char(); if (is_letter(ch) namenp+ =ch; next_ch(); while(is_digit(ch) |(is_let
5、ter(ch) namenp+ =ch; next_ch(); namenp = 0 Token.class = IDENTIFIER; Token.seman = name; ,2 ToyL语言,语言定义 简化的Pascal语言 程序用begin和end扩起来 类型有: integer 语句 赋值语句 输入语句 输出语句 语法图 P13,3 ToyL语言词法分析,词法分析 从源程序到Token序列的转换 Token设计 设计单词类别 ToyL语言共计13类,P13 C语言的定义,P14 对应的Token,P14,3 ToyL语言词法分析,Token例子 源程序 begin x:=10; re
6、ad(y); x:=x+y end Token序列设计 找出单词 列出Token,3 ToyL语言词法分析,Token例子 Token序列 1 (BEGIN, “begin”) 2 (IDEN, “x”) 3 (ASS, “:=”) 4 (NUMB,”10”) 5 (SEMI, “;”) 6 (READ, “read”) 7 (OPEN, “(“) 8 (IDEN, “y”),9 (CLOSE, “)”) 10 (SEMI, “;”) 11 (IDEN, “x”) 12 (ASS,”:=”) 13 (IDEN, “x”) 14 (PLUS, “+”) 15 (IDEN, “y“) 16 (END, “end”),3 ToyL语言词法分析(续),Token类型设计 保留字处理 词法分析器的设计 作用:分析源程序,列出Token 主要子程序 next_char() recongnize_number() recongnize_name(),3 ToyL语言词法分析(续),思考:词法分析程序的总体结构 以上面程序为例 分析词法分析程序的功能 分析程序执行过程,3 词法分析程序(续),思考 参考书中的算法自己设计一个词法分析程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中医护理学生实践指导
- 园区智慧管理合同
- pph应急处理预案(3篇)
- 广电国庆营销方案(3篇)
- 学子归来活动策划方案(3篇)
- 儿童口腔活动策划方案(3篇)
- 循环钻孔施工方案(3篇)
- 拖鞋营销方案非洲(3篇)
- 施工方案制定技巧(3篇)
- 最美海景活动策划方案(3篇)
- 有趣的汉字小故事
- 中国特发性颅内压增高诊断与治疗专家共识(新版)课件
- 2025华夏银行郑州分行社会招聘备考题库及完整答案详解1套
- 《玄女经》白话文译注与原文对照
- 伤口负压治疗新进展
- HIV感染者心理支持方案
- 配电箱设备防护维护技术方案
- 防火电缆涂料施工方案
- 中国人民大学:2025年中国城市CSG(双碳-社会-治理)指数报告
- 道路运输安全生产考核与奖惩制度
- 2025版《煤矿安全规程》解读
评论
0/150
提交评论