书签 分享 收藏 举报 版权申诉 / 16
上传文档赚钱

类型试验一讲解withpureC课件.pptx

  • 上传人(卖家):三亚风情
  • 文档编号:3481429
  • 上传时间:2022-09-05
  • 格式:PPTX
  • 页数:16
  • 大小:104.03KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《试验一讲解withpureC课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    试验 讲解 withpureC 课件
    资源描述:

    1、Phases of a CompilerLexical AnalyzerSyntax AnalyzerToken StreamSemantic AnalyzerIntermediateCode GeneratorCode GeneratorSymbol TableMachine CodeOutlinev提交说明提交说明v实验任务(必做实验任务(必做+选做)选做)v编译环境及过程编译环境及过程词法分析与词法分析与flex语法分析与语法分析与bisonv实验实验讲解讲解文法文法二义性消除二义性消除语法语法树创建与打印树创建与打印文法符号结点的数据结构文法符号结点的数据结构语法解析的错误恢复语法解析

    2、的错误恢复提交提交说明说明v地址:地址:ftp:/114.212.190.181:v用户名和密码:用户名和密码:uploadv格式:学号命名的压缩包格式:学号命名的压缩包(zip/rar)v内容:内容:源程序(ex1.,ex1.额外的.c文件)可执行程序(命名为 parser)报告PDF(完成的功能点,编译步骤,实现方法,结点的数据结构表示;不超过3页)备注:可重新提交,加后缀备注:可重新提交,加后缀 _02,_03实验任务实验任务v预备:熟悉预备:熟悉 C-文法和实验要求文法和实验要求v必做:必做:错误类型1:词法错误(词法未定义字符)错误类型2:语法错误(如3,9)v选选做:做:选选做做1

    3、:两种风格的注释:两种风格的注释:/,/*/选做选做2:八进制数:八进制数:012选做选做3:十六进制:十六进制:0 xa,0Xa,0 xA,0XA选做选做4:指数形式的浮点数:指数形式的浮点数:1E1,01e1编译环境及过程编译环境及过程 vGNU Flex,GNU Bison,GCC,Linux Ubuntusudo apt-get install flex sudo apt-get install bisonv源文件源文件ex1.l,ex1.y 可执行程序可执行程序parserFlex:ex1.l lex.yy.cBison:ex1.y ex1.tab.cGCC:*.c parser./

    4、parser test.c/测试命令测试命令编译编译 方法方法Flexex1.lex.yy.Bisonex1.ex1.tab.GCCflex ex1.lbison -d ex1.ygcc -o parser ex1.tab.c -ll (-lfl)parser-ll:lib of lex -lfl:lib of flex -ly:lib of yaccFlex&Bison%ex1.lDeclarations#include“ex1.tab.h”%Definitions(RegEx)%Rules%subroutines(e.g)main%ex1.yDeclarations#include lex

    5、.yy.c%Definitions(%Token)%Productions%subroutinesint main(int argc,char*argv)if(argc=1)return 1;FILE*f=fopen(argv1,r);if(!f)perror(argv1);return 1;yyrestart(f);/输入文件指针置为 yyin=f /main函数启动解析函数启动解析器器 return 0;启动语法分析器启动语法分析器Flex预定义变量预定义变量id strncpy(id_lexeme,yytext,yyleng);yylval.pNode=createNode();retu

    6、rn ID;yytext,yyleng:词素字符串 yylineno:%option yylineno yylval:全局变量,当前词法单元的属性值%union int val;char*str;struct Node*pNode;保留字和标识符保留字和标识符%Declarations%Definitions%Rules%subroutines文法文法二义性二义性:操作符优先级与结合性操作符优先级与结合性%Declarations%Definitions /优先级优先级与结合与结合性性%Productions%subroutines%right ASSIGNOP%left AND%left R

    7、ELOP%left PLUS MINUS%left STAR DIV%right NOT UMINUS%left DOT LB RB LP RPExp|MINUS EXP%prec UMINUS文法文法二义性二义性:IF-ELSE配对配对Stmt:IF LP Exp RP Stmt|IF LP Exp RP Stmt ELSE Stmt%nonassoc IFX%nonassoc ELSEStmt:IF LP Exp RP Stmt%prec IFX|IF LP Exp RP Stmt ELSE Stmt语法语法树创建与打印树创建与打印v多叉树的构建:多叉树的构建:Exp:ID$=create

    8、Node($1);Exp:MINUS EXP$=createNode($1,$2);#include struct Node*createNode(int arity,);v递归层次的前序遍历递归层次的前序遍历文法符号结点的数据结构文法符号结点的数据结构v保存的信息:保存的信息:struct Node ;结点类型:非终结符,终结符(数,标识符)结点名字:Exp,TYPE,ID所在行号:%option yylineno字符串属性值:TYPE.int,ID.lexeme数值属性值:INT,FLOAT多叉多叉树树孩子孩子:int arity,struct Node*childrenN;/vector

    9、-(可扩展可扩展)语法解析的错误恢复产生式语法解析的错误恢复产生式vBison在当前状态对yylex()返回的token没有定义 时即发生了语法错误,调用yyerror:yyerror(char*str)printf(“syntax errorn”);vBison不断丢弃词法单元直至遇到不断丢弃词法单元直至遇到同步同步 单元单元(例如例如:分号,右括号分号,右括号)v机制:错误恢复产生式机制:错误恢复产生式Stmt:error SEMI参考资料参考资料vAho 编译原理:http:/ 编译原理:http:/www.stanford.edu/class/archive/cs/cs143/cs143.1128/handouts/050%20Flex%20In%20A%20Nutshell.pdfhttp:/www.stanford.edu/class/archive/cs/cs143/cs143.1128/handouts/120%20Introducing%20bison.pdfv指导攻略:http:/ v可变参数个数:http:/

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:试验一讲解withpureC课件.pptx
    链接地址:https://www.163wenku.com/p-3481429.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库