基于GUI的交互式编译系统之中间代码生成器的设计与实现毕业论文设计.docx
上传人:天马****23 上传时间:2024-09-12 格式:DOCX 页数:55 大小:2.5MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

基于GUI的交互式编译系统之中间代码生成器的设计与实现毕业论文设计.docx

基于GUI的交互式编译系统之中间代码生成器的设计与实现毕业论文设计.docx

预览

免费试读已结束,剩余 45 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于GUI的交互式编译系统之中间代码生成器的设计与实现基于GUI的交互式编译系统之中间代码生成器的设计与实现摘要本设计实现了一个编译器前端,它将一个用C语言的子语言编写的源程序翻译成中间代码。词法分析器、语法分析器、中间代码生成器均是采用C++语言手动书写完成,未采用自动生成器,GUI采用Win32API实现以保证轻快的运行速度及良好的系统性能,编辑控件采用Scintilla。词法分析器采用确定有限自动机实现,语法分析器是一个递归下降分析器,中间代码生成器输出的中间代码以四元式形式表示。本设计实现的编译器前端,运行在Windows平台下,Windows系统版本为WindowsXP、Windows7或更高版本。本设计提供了一个可工作的界面友好的编译器前端,可以用来理解编译原理及解释怎样用一种语言如C++实现编译器前端,以供学习和教学所用。关键词:编译器前端;GUI;C++Design&ImplementationofIntermediateCodeGeneratorofInteractiveCompilationSystemBasedGUIAbstractThisfinalprojectimplementsacompilerfront-end,ittranslatessourceprogramswritteninasubsetoftheClanguageintointermediatecode.Thelexer、parserandintermediatecodegeneratorareallhand-writteninC++,noautolexerorparserareused,GUIisimplementedinWin32APIforfastrunningspeedandhighperformance,andeditcontrolusesScintilla.ThelexerisimplementedinDeterministicfiniteautomata,theparserisarecursive-descentparser,theintermediatecodesarerepresentedinquadruple。Thecompilerfront-endrunsontheWindowsplatform,WindowssystemversionisWindowsXP,Windows7orlater.Thisprojectprovideaworkinganduserinterfacefriendlycompilerfront-end,whichcanbeusedtodemonstratecompilerprincipleandhowcompilerscanbeimplementedinalanguagesuchasC++,forlearningandteaching.Keywords:compilerfront-end;GUI;C++目录TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc358733311"1绪论PAGEREF_Toc358733311\h1HYPERLINK\l"_Toc358733312"2基本原理PAGEREF_Toc358733312\h3HYPERLINK\l"_Toc358733313"2.1词法分析PAGEREF_Toc358733313\h4HYPERLINK\l"_Toc358733314"2.1.1词法分析结果PAGEREF_Toc358733314\h4HYPERLINK\l"_Toc358733315"2.1.2确定有限自动机PAGEREF_Toc358733315\h5HYPERLINK\l"_Toc358733316"2.2语法分析PAGEREF_Toc358733316\h5HYPERLINK\l"_Toc358733317"2.2.1递归下降分析法PAGEREF_Toc358733317\h6HYPERLINK\l"_Toc358733318"2.2.2运算符的优先级PAGEREF_Toc358733318\h8HYPERLINK\l"_Toc358733319"2.3中间代码生成PAGEREF_Toc358733319\h9HYPERLINK\l"_Toc358733320"2.3.1四元式PAGEREF_Toc358733320\h9HYPERLINK\l"_Toc358733321"2.3.2四元式的常见结构PAGEREF_Toc358733321\h