欢迎来到天天文库
浏览记录
ID:13127633
大小:1.21 MB
页数:54页
时间:2018-07-20
《基于gui的交互式编译系统之中间代码生成器的设计与实现毕业论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于GUI的交互式编译系统之中间代码生成器的设计与实现基于GUI的交互式编译系统之中间代码生成器的设计与实现摘要本设计实现了一个编译器前端,它将一个用C语言的子语言编写的源程序翻译成中间代码。词法分析器、语法分析器、中间代码生成器均是采用C++语言手动书写完成,未采用自动生成器,GUI采用Win32API实现以保证轻快的运行速度及良好的系统性能,编辑控件采用Scintilla。词法分析器采用确定有限自动机实现,语法分析器是一个递归下降分析器,中间代码生成器输出的中间代码以四元式形式表示。本设计实现的编译器前端,运行在Windows平台下,Windows系统版本为WindowsXP、Window
2、s7或更高版本。本设计提供了一个可工作的界面友好的编译器前端,可以用来理解编译原理及解释怎样用一种语言如C++实现编译器前端,以供学习和教学所用。关键词:编译器前端;GUI;C++基于GUI的交互式编译系统之中间代码生成器的设计与实现Design&ImplementationofIntermediateCodeGeneratorofInteractiveCompilationSystemBasedGUIAbstractThisfinalprojectimplementsacompilerfront-end,ittranslatessourceprogramswritteninasubsetof
3、theClanguageintointermediatecode.Thelexer、parserandintermediatecodegeneratorareallhand-writteninC++,noautolexerorparserareused,GUIisimplementedinWin32APIforfastrunningspeedandhighperformance,andeditcontrolusesScintilla.ThelexerisimplementedinDeterministicfiniteautomata,theparserisarecursive-descentp
4、arser,theintermediatecodesarerepresentedinquadruple。Thecompilerfront-endrunsontheWindowsplatform,WindowssystemversionisWindowsXP,Windows7orlater.Thisprojectprovideaworkinganduserinterfacefriendlycompilerfront-end,whichcanbeusedtodemonstratecompilerprincipleandhowcompilerscanbeimplementedinalanguages
5、uchasC++,forlearningandteaching.Keywords:compilerfront-end;GUI;C++基于GUI的交互式编译系统之中间代码生成器的设计与实现目录1绪论12基本原理32.1词法分析42.1.1词法分析结果42.1.2确定有限自动机52.2语法分析52.2.1递归下降分析法62.2.2运算符的优先级82.3中间代码生成92.3.1四元式92.3.2四元式的常见结构102.4符号表142.4.1作用域152.4.2局部变量名的存储布局163设计与实现173.1C子语言173.1.1数据类型173.1.2字面值173.1.3表达式173.1.4语句183.
6、1.5函数183.2符号表193.3词法分析器243.4语法分析器263.5中间代码生成器283.6GUI304测试36总结41参考文献42致谢43附录源程序44附件1:开题报告(文献综述)附件2:译文及原文影印件基于GUI的交互式编译系统之中间代码生成器的设计与实现1绪论很少有人去自己编写或修改编译器,那么为什么要去实现编译器前端呢?很重要的一点就是,理解计算机程序怎样被编译以及执行,可以帮助任何程序员理解他们写的代码是怎样驱动计算机的,从而帮助他们写出更快、更高效的程序。编译原理经过多年发展已日趋成熟,然而现代很多跟编译原理相关的教材,内容陈旧落后,比如以Fortran或Pascal等过时
7、语言为例进行分析讲解,或者全书充满晦涩难懂的定理公式,不能以直观的方式进行阐述,致使学生望而生畏。本设计用C++语言实现了一个编译器前端,它将一个用C子语言编写的源程序翻译成中间代码,拥有友好直观的交互式图形界面,有助于对编译原理的理解,可用于学习及教学。在一段程序可以执行之前,首先需要把它翻译成一种其能够被计算机接受的形式,完成这项翻译工作的程序称为编译器(compiler)[1]。简单而言,编
此文档下载收益归作者所有