《tiny编译器的使用ppt课件.ppt》由会员分享,可在线阅读,更多相关《tiny编译器的使用ppt课件.ppt(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、tiny编译器及其使编译器及其使用用杨晓波杨晓波2014-3-3火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去实验资料说明实验资料说明v从课程中心从课程中心-编译原理(注:杨晓波)编译原理(注:杨晓波)-教教学资料学资料-实验中下载实验中下载loucom.ZIP并解压并解压火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去使用现有使用现有tiny编译器编译器v1.运行运行tiny编译器(编译器(tiny.exe)在命令行键入:在命令行键入:TINY SAMPLETINY目录中
2、生成可以在目录中生成可以在TM虚拟机上运行的目标代码文件虚拟机上运行的目标代码文件sample.TM 火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去使用现有使用现有tiny编译器编译器v2.在目标机在目标机(TM.exe)上运行目标代码上运行目标代码在命令行键入:在命令行键入:TM SAMPLE,TM虚拟机开始虚拟机开始运行如下图所示:运行如下图所示:火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去在在TM虚拟机执行目标代码虚拟机执行目标代码在在“Enter command
3、:”提示后输入提示后输入g,执行目标代码中的,执行目标代码中的TM指令直至停机。指令直至停机。然后在然后在“Enter value for IN instruction”后输入数字,如:后输入数字,如:6,按回车。,按回车。火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去将编译器和虚拟机将编译器和虚拟机源代码源代码转换为转换为exev(1)生成)生成tiny编译器编译器v在在VC+新建一个新建一个win32 console application的空的空工程(如:工程(如:all),把编译器相关的源代码加入),把编译器相关的源代码加入
4、除了除了tm.c外的所有外的所有.c文件和文件和.h文件文件v编译并生成编译并生成allBuild-rebuild all或或build all.exev(2)生成)生成TM虚拟机虚拟机方法同上,用方法同上,用TM.C建立工程建立工程火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去条件编译条件编译v为方便调试和教学,为方便调试和教学,TINY语言编译器设置了若干条语言编译器设置了若干条件编译标志,可用于方便地创建部分编译器。件编译标志,可用于方便地创建部分编译器。v标志和构造部分编译器时所需文件如下表所示:标志和构造部分编译器时所需文
5、件如下表所示:火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去条件编译举例:条件编译举例:词法分析器词法分析器v任务任务生成运行生成运行tiny的词法分析器的词法分析器v实验原理实验原理状态图代码化状态图代码化或使用词法分析自动生成工具或使用词法分析自动生成工具lex火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去(一一)生成并运行生成并运行TINY的词法分析程序的词法分析程序v(1)生成)生成tiny词法分析词法分析器器v在在VC+新建一个新建一个win32 console
6、 application的空的空工程(如:工程(如:cifa),把词法分析相关的源代码加入),把词法分析相关的源代码加入通用文件:通用文件:main.c,globals.h,util.c,util.h词法文件:词法文件:scan.c和和scan.hv修改修改main.c中条件编译标志和控制显示标志中条件编译标志和控制显示标志NO_PARSE:从:从FALSE改为改为TRUEEchoSource和和TraceScan:从:从FALSE改为改为TRUEv编译并生成编译并生成cifaBuild-rebuild all或或build cifa.exe火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要
7、当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去(2)运行)运行tiny词法分析词法分析器器火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去方法二方法二v使用使用Parser Generator生成词法分析程序(详见生成词法分析程序(详见课程中心课程中心工具工具配置配置说明)说明)设置设置parser genera
8、tor的环境的环境修改修改vc+的目录设置使其可找到包含文件的目录设置使其可找到包含文件yacc.h和和lex.h以及以及YACC和和Lex的的库文件库文件 使用使用Parser generator的的project-projectWizard建立一个目标语言为建立一个目标语言为C,lex only,不创造不创造main函数的分析器(见下页)函数的分析器(见下页)把把tiny.l的内容复制并替换向导生成的的内容复制并替换向导生成的lex源代码源代码点击点击project-build或按或按F7生成词法分析程序生成词法分析程序mylex.c和和mylex.hv再如前新建一个工程把词法分析要用到的
9、程序加入后生成词法分析程序再如前新建一个工程把词法分析要用到的程序加入后生成词法分析程序的的exeMain.c,mylex.c,util.cGlobals.h,mylex.h,util.h(似乎还要把似乎还要把scan.h加入)加入)设置设置VC+项目的环境项目的环境火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去使用使用flexvFlex tiny.l生成生成lex.yy.cv再如前新建一个工程把词法分析要用到的程再如前新建一
10、个工程把词法分析要用到的程序加入后生成词法分析程序的序加入后生成词法分析程序的exeMain.c,lex.yy.c,util.cGlobals.h,util.h,scan.h设置设置VC+项目的环境项目的环境火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去参考资料参考资料vKenneth C.Louden著,冯博琴等译著,冯博琴等译.编译原理及实践编译原理及实践.机机械工业出版社,械工业出版社,1997v赵建华,郑滔,戴新宇译赵建华,郑滔,戴新宇译.编译原理编译原理.机械工业出版社,机械工业出版社,2009vGCC编译器编译器 http:/gcc.gnu.org/vflex与与bison.John levine著著,陆军译陆军译.东南大学出版社,东南大学出版社,2011vLex&Yacc压缩手册(见群共享)压缩手册(见群共享)vParser Generator http:/