文档详情

编译原理课程设计报告任务书--DO-WHILE循环语句的翻译程序设计(递归下降法,输出四元式).docx

发布:2018-05-12约4.91千字共11页下载文档
文本预览下载声明
课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位:计算机科学与技术学院 题目: DO-WHILE循环语句的翻译程序设计(递归下降法、输出四元式)初始条件:理论:学完编译课程,掌握一种计算机高级语言的使用。实践:计算机实验室提供计算机及软件环境。如果自己有计算机可以在其上进行设计。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)写出符合给定的语法分析方法的文法及属性文法。完成题目要求的中间代码四元式的描述。写出给定的语法分析方法的思想,完成语法分析和语义分析程序设计。编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。设计报告格式按附件要求书写。课程设计报告书正文的内容应包括:1 系统描述(问题域描述);2 文法及属性文法的描述;3 语法分析方法描述及语法分析表设计;4 按给定的题目给出中间代码形式的描述及中间代码序列的结构设计;5 编译系统的概要设计;6 详细的算法描述(流程图或伪代码);7 软件的测试方法和测试结果;8 研制报告(研制过程,本设计的评价、特点、不足、收获与体会等);9 参考文献(按公开发表的规范书写)。时间安排:设计安排一周:周1、周2:完成系统分析及设计。周3、周4:完成程序调试及测试。周5:撰写课程设计报告。设计验收安排:设计周的星期五第1节课开始到实验室进行上机验收。设计报告书收取时间:设计周的次周星期一上午10点。指导教师签名: 2009年 11月 23日系主任(或责任教师)签名: 2009年 11月 23日DO-WHILE语句的翻译分析程序设计 ———递归下降法、输出四元式1问题描述设计一个DO-WHILE循环语句的词法﹑语法及语义分析程序,语法分析选择递归下降法,采用用语法制导翻译输出中间代码四元式。2文法及属性文法的描述。2.1 DO-while循环语句的文法产生式为S- do E while A,为便于语法制导翻译将其改写如下: 文法G(s)如下: S-do{A}while(P); A-id=E; E-TE E-+TE | -TE | e T-FT T-*FT | /FT | e F-(E) | id P-E rop id rop- | | = | = | != | ==2.2 DO-WHILE循环语句的属性文法:产生式语义规则S→do A while P S.begin:=newlabel;E.true:=newlabel;E.false:=S.next;S1.next:=S.begin;S.code:=gen(S.begin’:’‖E。code‖gen(E.true’:’) ‖S1.code‖gen(‘goto’ S.begin) 3.语法分析方法及中间代码形式的描述3.1语法分析方法递归下降法的实现思想是为文法的每个非终结符号设计一个相对应的递归子程序,识别程序由一组这样的子程序组成。它的优点是简单直观,易于构造,很多编译系统所实现缺点是对文法要求很高,由于递归调用多,影响分析器的效率其文法可以表示为: E→T│E+T T→F│T*F F→i│(E)可以用语法图来表示语言的文法,如图:TT+E*FFTE)(iF3.2中间代码形式描述 中间代码采用四元式输出,一个四元式是一个带有四个域的记录结构,这四个域分别称为op﹑arg1﹑arg2及result。域op包含一个代表运算符的内部码。语句do{c=a+b; }while (ab)的四元式输出形式如下: 100 ( + , a , b , T ) 101 ( = , T , - , c ) 102 ( j, a , b , 100 )4.简要的分析与概要设计4.1词法分析 词法分析程序的任务是:从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号的中间程序。词法分析检查的错误主要是挑出源程序中出现的非法符号。所谓非法符号是指不是程序设计语言中允许出现的符号,就像自然语句中的错字一样。4.2递归下降翻译器的设计对每个非终结符A构造一个函数过程,对A的每个继承属性设置一个形式参数,函数的返回值为A的综合属性,A对应的函数过程中,为出现在A的产生式中的每一个文法符号的每一个属性都设置一个局部变量。非终结符A对应的函数过程中,根据当前的输入符号决定使用哪个产生式候选。每个产生式对应的程序代码中,按照从左到右的次序,对于单词符号,非终结符和语义动作分别做以下工作。(1)对于带有综合属性x的终结符X,把x的值存入为X,x设置的变量中。然后产生一个匹配X的调用,并继续读入一个输入符号。(2)对于每个非终结符号B,产生一个右边带有函数调用的赋值语句c=B(b1
显示全部
相似文档