欢迎来到天天文库
浏览记录
ID:13036655
大小:1.09 MB
页数:57页
时间:2018-07-20
《基于gui的交互式编译系统之中间代码生成器的设计与实现—_学位论文.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于GUI的交互式编译系统之中间代码生成器的设计与实现基于GUI的交互式编译系统之中间代码生成器的设计与实现摘要本设计实现了一个编译器前端,它将一个用C语言的子语言编写的源程序翻译成中间代码。词法分析器、语法分析器、中间代码生成器均是采用C++语言手动书写完成,未采用自动生成器,GUI采用Win32API实现以保证轻快的运行速度及良好的系统性能,编辑控件采用Scintilla。词法分析器采用确定有限自动机实现,语法分析器是一个递归下降分析器,中间代码生成器输出的中间代码以四元式形式表示。本设计实现的编译
2、器前端,运行在Windows平台下,Windows系统版本为WindowsXP、Windows7或更高版本。本设计提供了一个可工作的界面友好的编译器前端,可以用来理解编译原理及解释怎样用一种语言如C++实现编译器前端,以供学习和教学所用。关键词:编译器前端;GUI;C++基于GUI的交互式编译系统之中间代码生成器的设计与实现Design&ImplementationofIntermediateCodeGeneratorofInteractiveCompilationSystemBasedGUIAbstr
3、actThisfinalprojectimplementsacompilerfront-end,ittranslatessourceprogramswritteninasubsetoftheClanguageintointermediatecode.Thelexer、parserandintermediatecodegeneratorareallhand-writteninC++,noautolexerorparserareused,GUIisimplementedinWin32APIforfastru
4、nningspeedandhighperformance,andeditcontrolusesScintilla.ThelexerisimplementedinDeterministicfiniteautomata,theparserisarecursive-descentparser,theintermediatecodesarerepresentedinquadruple。Thecompilerfront-endrunsontheWindowsplatform,Windowssystemversio
5、nisWindowsXP,Windows7orlater.Thisprojectprovideaworkinganduserinterfacefriendlycompilerfront-end,whichcanbeusedtodemonstratecompilerprincipleandhowcompilerscanbeimplementedinalanguagesuchasC++,forlearningandteaching.Keywords:compilerfront-end;GUI;C++基于GU
6、I的交互式编译系统之中间代码生成器的设计与实现基于GUI的交互式编译系统之中间代码生成器的设计与实现目录1绪论32基本原理32.1词法分析32.1.1词法分析结果32.1.2确定有限自动机32.2语法分析32.2.1递归下降分析法32.2.2运算符的优先级32.3中间代码生成32.3.1四元式32.3.2四元式的常见结构32.4符号表32.4.1作用域32.4.2局部变量名的存储布局33设计与实现33.1C子语言33.1.1数据类型33.1.2字面值33.1.3表达式33.1.4语句33.1.5函数33
7、.2符号表33.3词法分析器33.4语法分析器33.5中间代码生成器33.6GUI34测试3总结3参考文献3致谢3附录源程序44附件1:开题报告(文献综述)附件2:译文及原文影印件基于GUI的交互式编译系统之中间代码生成器的设计与实现1绪论很少有人去自己编写或修改编译器,那么为什么要去实现编译器前端呢?很重要的一点就是,理解计算机程序怎样被编译以及执行,可以帮助任何程序员理解他们写的代码是怎样驱动计算机的,从而帮助他们写出更快、更高效的程序。编译原理经过多年发展已日趋成熟,然而现代很多跟编译原理相关的教
8、材,内容陈旧落后,比如以Fortran或Pascal等过时语言为例进行分析讲解,或者全书充满晦涩难懂的定理公式,不能以直观的方式进行阐述,致使学生望而生畏。本设计用C++语言实现了一个编译器前端,它将一个用C子语言编写的源程序翻译成中间代码,拥有友好直观的交互式图形界面,有助于对编译原理的理解,可用于学习及教学。在一段程序可以执行之前,首先需要把它翻译成一种其能够被计算机接受的形式,完成这项翻译工作的程序称为编译器(compiler)[1]
此文档下载收益归作者所有