您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > C/C++资料 > 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文件编译并生成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++项目的环境使用flexFlextiny.l生成lex.yy.c再如前新建一个工程把词法分析要用到的程序加入后生成词法分析程序的exeMain.c,lex.yy.c,util.cGlobals.h,util.h,scan.h设置VC++项目的环境参考资料KennethC.Louden著,冯博琴等译.编译原理及实践.机械工业出版社,1997赵建华,郑滔,戴新宇译.编译原理.机械工业出版社,2009GCC编译器flex与bison.Johnlevine著,陆军译..东南大学出版社,2011Lex&Yacc压缩手册(见群共享)ParserGenerator
本文标题:tiny编译器的使用
链接地址:https://www.777doc.com/doc-7300455 .html