《个微小编译器》PPT课件

《个微小编译器》PPT课件

ID:41116273

大小:203.46 KB

页数:20页

时间:2019-08-16

《个微小编译器》PPT课件_第1页
《个微小编译器》PPT课件_第2页
《个微小编译器》PPT课件_第3页
《个微小编译器》PPT课件_第4页
《个微小编译器》PPT课件_第5页
资源描述:

《《个微小编译器》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第二章 一个微小编译器任课教师王养廷主要内容基础知识ToyL语言ToyL词法分析程序1基础知识词法分析的基础知识基本符号程序设计语言中使用的符号。程序文本源程序程序文件ASCII序列的源文件语义单位单词:源程序中独立的语义单位1基础知识(续)词法分析的基础知识单词的分类标识符,如:x,y1,length保留字,begin,end,case,if常数,2,30运算符,+,-,<等界限符,(,),;编辑符,空格、回车、换行,制表符1基础知识(续)程序片断示例ifscore<60thenwriteln(‘fialed!’);该片断中的单词1基础知识

2、(续)词法分析的基础知识Token为了处理方便,对单词进行的编码,P10图语义信息Token中保留两类信息类别信息:Token.class语义信息:Token.seman1基础知识(续)词法分析的基础知识Token程序实现P10typedefstruct{intclass;charseman[];position_in_Filepos;}Token_typeclasssemanposition1基础知识(续)词法分析的基础知识读进字符从源程序中读入的字符用于得到单词识别字符判断字符是哪一类使用函数过滤格式滤掉空格类字符1基础知识(续)词法分析

3、的基础知识常数翻译读入字符串语义表示字符串数值实际语言中可能还有类型程序分析1基础知识(续)词法分析的基础知识程序voidrecognize_number(void){chardigits[10];dsp=0;next_char();while(is_digit(ch)){digits[dsp++]=ch;next_ch();}digits[dsp]=‘’Token.class=NUMBER;Token.seman=digits;}1基础知识(续)词法分析的基础知识程序voidrecognize_number(void){intn=0;n

4、ext_char();while(is_digit(ch)){n=n*10+ch=‘0’;next_ch();}Token.class=NUMBER;Token.seman=n;}1基础知识(续)词法分析的基础知识标识符读入标识符程序分析保留字1基础知识(续)词法分析的基础知识程序voidrecognize_identifier(void){charname[10];np=0;next_char();if(is_letter(ch)){name[np++]=ch;next_ch();}while((is_digit(ch)

5、

6、(is_lett

7、er(ch))){name[np++]=ch;next_ch();}name[np]=‘’Token.class=IDENTIFIER;Token.seman=name;}2ToyL语言语言定义简化的Pascal语言程序用begin和end扩起来类型有:integer语句赋值语句输入语句输出语句语法图P133ToyL语言词法分析词法分析从源程序到Token序列的转换Token设计设计单词类别ToyL语言共计13类,P13C语言的定义,P14对应的Token,P143ToyL语言词法分析Token例子源程序beginx:=10;read(y

8、);x:=x+yendToken序列设计找出单词列出Token3ToyL语言词法分析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](EN

9、D,“end”)3ToyL语言词法分析(续)Token类型设计保留字处理词法分析器的设计作用:分析源程序,列出Token主要子程序next_char()recongnize_number()recongnize_name()3ToyL语言词法分析(续)思考:词法分析程序的总体结构以上面程序为例分析词法分析程序的功能分析程序执行过程3词法分析程序(续)思考参考书中的算法自己设计一个词法分析程序自己设计一个表示Token的数据结构补充作业写出下面程序的Token序列beginread(a);write(a+10)end说明实验内容可以完成要求的P

10、L0分析也可以独立实现一个小编译器

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。