tiny编译器的使用ppt课件_第1页
tiny编译器的使用ppt课件_第2页
tiny编译器的使用ppt课件_第3页
tiny编译器的使用ppt课件_第4页
tiny编译器的使用ppt课件_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.,tiny编译器及其使用,杨晓波2014-3-3,.,实验资料说明,从课程中心-编译原理(注:杨晓波)-教学资料-实验中下载loucom.ZIP并解压,.,使用现有tiny编译器,1.运行tiny编译器(tiny.exe)在命令行键入:TINYSAMPLE,TINY目录中生成可以在TM虚拟机上运行的目标代码文件sample.TM,.,使用现有tiny编译器,2.在目标机(TM.exe)上运行目标代码在命令行键入:TMSAMPLE,TM虚拟机开始运行如下图所示:,.,在TM虚拟机执行目标代码,在“Entercommand:”提示后输入g,执行目标代码中的TM指令直至停机。然后在“EntervalueforINinstruction”后输入数字,如:6,按回车。,.,将编译器和虚拟机源代码转换为exe,(1)生成tiny编译器在VC+新建一个win32consoleapplication的空工程(如:all),把编译器相关的源代码加入除了tm.c外的所有.c文件和.h文件编译并生成allBuild-rebuildall或buildall.exe(2)生成TM虚拟机方法同上,用TM.C建立工程,.,条件编译,为方便调试和教学,TINY语言编译器设置了若干条件编译标志,可用于方便地创建部分编译器。标志和构造部分编译器时所需文件如下表所示:,.,条件编译举例:词法分析器,任务生成运行tiny的词法分析器实验原理状态图代码化或使用词法分析自动生成工具lex,.,(一)生成并运行TINY的词法分析程序,(1)生成tiny词法分析器在VC+新建一个win32consoleapplication的空工程(如:cifa),把词法分析相关的源代码加入通用文件:main.c,globals.h,util.c,util.h词法文件:scan.c和scan.h修改main.c中条件编译标志和控制显示标志NO_PARSE:从FALSE改为TRUEEchoSource和TraceScan:从FALSE改为TRUE编译并生成cifaBuild-rebuildall或buildcifa.exe,.,(2)运行tiny词法分析器,.,.,.,方法二,使用ParserGenerator生成词法分析程序(详见课程中心工具配置说明)设置parsergenerator的环境修改vc+的目录设置使其可找到包含文件yacc.h和lex.h以及YACC和Lex的库文件使用Parsergenerator的project-projectWizard建立一个目标语言为C,lexonly,不创造main函数的分析器(见下页)把tiny.l的内容复制并替换向导生成的lex源代码点击project-build或按F7生成词法分析程序mylex.c和mylex.h再如前新建一个工程把词法分析要用到的程序加入后生成词法分析程序的exeMain.c,mylex.c,util.cGlobals.h,mylex.h,util.h(似乎还要把scan.h加入)设置VC+项目的环境,.,.,使用flex,Flextiny.l生成lex.yy.c再如前新建一个工程把词法分析要用到的程序加入后生成词法分析程序的exeMain.c,lex.yy.c,util.cGlobals.h,util.h,scan.h设置VC+项目的环境,.,参考资料,KennethC.Louden著,冯博琴等译.编译原理及实践.机械工业出版社,1997赵建华,郑滔,戴新宇译.编译原理.机械工业出版社,2009GCC编译器http:/gcc.gnu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论