编译原理课程设计 c语言编译器的实现

编译原理课程设计 c语言编译器的实现

ID:12950948

大小:352.97 KB

页数:33页

时间:2018-07-19

编译原理课程设计    c语言编译器的实现_第1页
编译原理课程设计    c语言编译器的实现_第2页
编译原理课程设计    c语言编译器的实现_第3页
编译原理课程设计    c语言编译器的实现_第4页
编译原理课程设计    c语言编译器的实现_第5页
资源描述:

《编译原理课程设计 c语言编译器的实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、编译原理课程设计报告设计题目编译代码生成器设计学生姓名班级学号指导老师成绩一、课程设计的目的编译原理课程兼有很强的理论性和实践性,是计算机专业的一门非常重要的专业基础课程,它在系统软件中占有十分重要的地位,是计算机专业学生的一门主修课。为了让学生能够更好地掌握编译原理的基本理论和编译程序构造的基本方法和技巧,融会贯通本课程所学专业理论知识,提高他们的软件设计能力,特设定该课程的课程设计,通过设计一个简单的PASCAL语言(EL语言)的编译程序,提高学生设计程序的能力,加深对编译理论知识的理解与应用。二、课程设计的要求1、明确课程设计任务,复习编译理论知识,查阅复印相关的编译资料。2、按要求完成

2、课程设计内容,课程设计报告要求文字和图表工整、思路清晰、算法正确。3、写出完整的算法框架。4、编写完整的编译程序。三、课程设计的内容课程设计是一项综合性实践环节,是对平时实验的一个补充,课程设计内容包括课程的主要理论知识,但由于编译的知识量较复杂而且综合性较强,因而对一个完整的编译程序不适合平时实验。通过课程设计可以达到综合设计编译程序的目的。本课程的课程设计要求学生编写一个完整的编译程序,包括词法分析器、语法分析器以及实现对简单程序设计语言中的逻辑运算表达式、算术运算表达式、赋值语句、IF语句、While语句以及do…while语句进行编译,并生成中间代码和直接生汇编指令的代码生成器。四、总

3、体设计方案及详细设计总体设计方案:1.总体模块主程序词法分析程序语法分析程序中间代码生成程序2.表2.1各种单词符号对应的种别码单词符号种别码单词符号种别码bgin1:17If2:=18Then3<20wile4<>21do5<=22end6>23lettet(letter

4、digit)*10>=24dightdight*11=25+13;26—14(27*15)28/16#0详细设计:4.1界面导入设计(1)一共三个选项:①choice1--------cifafenxi②choice2--------yufafenxi③choice3--------zhongjiandaima(2)界面演

5、示图一图二图三4.2词法分析程序置初值调用扫描子程序输出单词二元组输入串结束结束否是(1)流程图设计(2)具体功能的具体设计1、cifafenxi()首先设置prog[n]来接收输入的语句,以‘#’来结束;调用扫描子程序scaner1(),每一次得到一个类型码;用switch判别相应输出;直到syn1=0为止。2、扫描子程序scaner1()-----------------扫描输入的语句首先设置3个变量:①token1用来存放构成单词符号的字符串;②sum1用来存放整型单词;③syn1用来存放单词符号的类型码。有关scaner1()中关键点解析:①while((ch=='')

6、

7、(ch=='

8、'))ch=prog[p++];;忽略空格②if(((ch<='z')&&(ch>='a'))

9、

10、((ch<='Z')&&(ch>='A'))){while(((ch<='z')&&(ch>='a'))

11、

12、((ch<='Z')&&(ch>='A'))

13、

14、((ch>='0')&&(ch<='9'))){token[m++]=ch;ch=prog[p++];};判别标识符③for(n=0;n<6;n++)if(strcmp(token,rwtab[n])==0){syn=n+1;break;};标识符是否是关键字④if((ch>='0')&&(ch<='9')){while((ch>='0')

15、&&(ch<='9')){sum=sum*10+ch-'0';ch=prog[p++];}};判别整数(3)词法分析的运行结果输入beginx:=1;y:=1+2;end#输出4.3语法分析程序(1)具体功能的具体设计1.yufafenxi()---------------分析程序给出算术表达式文法,进行适当的文法变换输入——表达式;输出——表达式语法是否正确。2.子程序的功能描述(3)语法分析的运行结果分析成功图分析失败图4.4中间代码生成程序(1)总体描述采用递归下降(自上而下)的语法制导翻译法。在前两次试验的基础上改进。词法分析程序à语法分析程序à语义分析程序à编译器。不断完善,不断改进

16、。渐变的过程。单词符号及种别表单词符号种别编码单词值main1 int2 float3 double4 char5 if6 else7 do8 while9 l(l

17、d)*10内部字符串(+

18、-

19、ε)d*(.dd*

20、ε)(e(+

21、-

22、ε)dd*

23、ε)20二进制数值表示=21 +22-23 *24 /25 (26 )27 {28 }29 ,30 ;31 >32 >=33 <34 <=35 ==36 

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

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

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