编译原理课程设计论文

编译原理课程设计论文

ID:42688362

大小:260.50 KB

页数:25页

时间:2019-09-20

编译原理课程设计论文_第1页
编译原理课程设计论文_第2页
编译原理课程设计论文_第3页
编译原理课程设计论文_第4页
编译原理课程设计论文_第5页
资源描述:

《编译原理课程设计论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、课程设计任务书题目:一个简单编译器的设计与分析学号200812110148姓名杨聪聪专业计算机科学与技术课程程序设计语言编译原理指导教师王艳秋职称讲师完成时间:2010年12月----2010年12月枣庄学院计算机科学系摘要使用过现代计算机的人都知道,多数用户是应用高级语言来实现他们所需要的计算的。现在计算机系统一般都含有不只一个的高级语言的编译程序,对有些高级语言甚至配置了几个不同性能的编译程序,供用户按不同需要进行选择。高级语言编译程序是计算机系统软件最主要的组成部分之一,也是用户最直接关系的工具之一。计算机上执行一个高级语言程序一般分为两步:第一,用一个编译程

2、序把高级语言翻译成机器语言程序;第二,运行所得的机器语言程序求得计算结果。通常说的翻译程序是指能够把某一种语言程序转换成另一种语言程序(目标语言程序)。如果源语言诸如Fortran,Pascal,C,Ada或java这样的高级语言,而目标程序是诸如汇编语言或者机器语言这类的低级语言,这样的一个翻译程序就是称为编译程序。一个编译程序的工作过程一般可以划分为五个阶段:词法分析、语法分析、语义分析与中间代码生成、优化、目标代码生成。每个阶段都是从上一个阶段得到结果,对他进行分析,并且根据一些外部环境(例如符号表等)得到最终的输出结果。要构造一个编译程序,可以按照这样的阶段

3、来分别构造,最后来连调。现在人们已经建立了多种编制部分编译程序或整个编译程序的有效工具。有些能用于自动生成扫描器(如LEX),有些可以用于自动产生语法分析器(如YACC),有些甚至可以用来自动产生整个的编译程序。这些构造编译程序的工具成为编译程序-编译程序、编译程序产生器或翻译程序书写系统,他们是按照编译程序和目标语言的形式描述而自动产生编译程序的。编译程序是一极其庞大而又复杂的系统,掌握它比较苦难。但是一旦对其掌握,对以后的程序语言设计,系统软件分析,系统软件设计,形式语言研究等方面都是非常有好处的。关键字:C语言、、编译、扫描器、语法分析一、需求分析给出类C语言

4、(C语言的子集)的词法和语法定义,并根据对应的语法定义写出一些属性文法和语法制导。根据词法和语法的定义,构造一个编译程序,它主要可以完成如下功能:1、读入某个已经编辑好的类C源程序文件,通过词法分析器,生成二元组,同时检查词法错误;2、语法分析器将产生的二元组作为输入,进行语法分析,同时检查语法错误;3、在语法分析同时,利用属性文法和语法制导技术,产生具体的语意动作,并对符号表进行操作;4、根据语义动作产生整个源程序的四元式序列;5、将产生的四元式序列连同符号表一起输出,作为编译程序的最终输出结果;6、对最后的代码优化和目标代码生成要有所考虑,必须留有一定的接口供以

5、后扩展;7、增大程序的可移植性,努力做到整个系统方便移植。二、详细算法设计词法分析程序à语法分析程序à语义分析程序à编译器。三、流程图图I主函数示意图是否为main?调用scanner是否为(?调用scanner是否为)?调用scanner调用语句块分析函数staBlock出错处理否否否图II递归下降分析程序示意图是否为{?调用scanner调用语句串分析函数staString调用scanner是否为}?出错处理否否图III语句块分析示意图调用语句分析函数sta回溯,调用backpatch是否为;?调用scanner调用语句分析函数sta否出错处理图IV语句串分析示

6、意图调用赋值语句分析函数fuzhi是否为字符串?是否为if?调用条件语句分析函数tiaojian是否为do?调用循环语句分析函数xunhuan图V语句分析示意图四、相关函数说明voidscanner();//扫描voidlrparser();voidstaBlock(int*nChain);//语句块voidstaString(int*nChain);//语句串voidsta(int*nChain);//语句voidfuzhi();//赋值语句voidtiaojian(int*nChain);//条件语句voidxunhuan();//循环语句char*E();//

7、Expresiion表达式char*T();//Term项char*F();//Factor因子char*newTemp();//自动生成临时变量voidbackpatch(intp,intt);//回填intmerge(intp1,intp2);//合并p1和p2voidemit(char*res,char*num1,char*op,char*num2);//生成四元式五.运行结果图VI赋值语句的分析图VII条件语句的分析图VIII循环语句的分析图IX综合六.编译器使用说明程序提示用户输入字符串“Pleaseinputyoursourcestring:”,用户

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。