tiny编译器的使用

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

tiny编译器及其使用杨晓波2014-3-3实验资料说明从课程中心-编译原理(注:杨晓波)-教学资料-实验中下载loucom.ZIP并解压使用现有tiny编译器1.运行tiny编译器(tiny.exe)在命令行键入:TINYSAMPLETINY目录中生成可以在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文件编译并生成allBuild-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改为TRUEEchoSource和TraceScan:从FALSE改为TRUE编译并生成cifaBuild-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再如前新建一个工程把词法分析要用到的程序加入后生成词法分析程序的exeMain.c,mylex.c,util.cGlobals.h,mylex.h,util.h(似乎还要把scan.h加入)设置VC++项目的环境使用flexFlextiny.l生成lex.yy.c再如前新建一个工程把词法分析要用到的程序加入后生成词法分析程序的exeMain.c,lex.yy.c,util.cGlobals.h,util.h,scan.h设置VC++项目的环境参考资料KennethC.Louden著,冯博琴等译.编译原理及实践.机械工业出版社,1997赵建华,郑滔,戴新宇译.编译原理.机械工业出版社,2009GCC编译器flex与bison.Johnlevine著,陆军译..东南大学出版社,2011Lex&Yacc压缩手册(见群共享)ParserGenerator

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功