文档详情

(FOR循环语句的翻译程序设计LL1法、输出三地址.doc

发布:2017-01-24约9.95千字共19页下载文档
文本预览下载声明
课程设计任务书 学生姓名: 专业班级: 指导教师: 工作单位: 题目: FOR循环语句的翻译程序设计(LL(1)法、输出三地址表示) 初始条件: 理论:学完编译课程,掌握一种计算机高级语言的使用。 实践:计算机实验室提供计算机及软件环境。如果自己有计算机可以在其上进行设计。 要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 写出符合给定的语法分析方法的文法及属性文法。 完成题目要求的中间代码三地址表示的描述。 写出给定的语法分析方法的思想,完成语法分析和语义分析程序设计。 编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。 设计报告格式按附件要求书写。课程设计报告书正文的内容应包括: 1 系统描述(问题域描述); 2 文法及属性文法的描述; 3 语法分析方法描述及语法分析表设计; 4 按给定的题目给出中间代码形式的描述及中间代码序列的结构设计; 5 编译系统的概要设计; 6 详细的算法描述(流程图或伪代码); 7 软件的测试方法和测试结果; 8 研制报告(研制过程,本设计的评价、特点、不足、收获与体会等); 9 参考文献(按公开发表的规范书写)。 时间安排: 设计安排一周:周1、周2:完成系统分析及设计。 周3、周4:完成程序调试及测试。 周5:撰写课程设计报告。 设计验收安排:设计周的星期五第1节课开始到实验室进行上机验收。 设计报告书收取时间:设计周的次周星期一上午10点。 指导教师签名: 年 月 日 系主任(或责任教师)签名: 年 月 日 FOR循环语句的翻译程序设计 ——LL(1)法、输出三地址 1.系统描述 1.1问题描述 用LL(1)法设计、编制、调试一个FOR(表达式1;表达式2;表达式3)〈赋值语句〉的语法及语义分析程序,输出三地址代码。 1.2功能描述 (1)能对for循环语句做词法分析,并将其中的某些语句做预处理,如i++转换为i=i+1等。 (2)能依据给定的LL(1)文法判断输入串是否符合LL(1)文法 (3)给出输入串的LL(1)分析过程 (4)完成对语句中控制变量赋值语句,控制条件语句以及控制变量变换语句的翻译 (5)完成对赋值语句包括复杂语句的翻译 (6)能够对三个表达式缺少一个或多个的情况下进行翻译 (7)用翻译后的语句以三地址代码的中间代码形式正确的表达for循环的执行流程。 2.文法及属性文法的描述 2.1文法的语言描述 (0) A-for(C;C;C){Y} (“}Y{)C;C;C(for”) Y-i=E; (“;E=i”) C-iD (“Di”) C-e (“”) D-=E (“E=”) D-E (“E”) D-E (“E”) E-LM (“ML”) M-+LM (“ML+”) M--LM (“ML-“) M-e (“”) L-NP (“PN”) P-*NP (“PN*”) P-/NP (“PN/”) P-e (“”) N-i (“i”) (i表示标识符或常数) N-(E) (“)E(“) D-=E (“E=”) D-=E (“E=”) 2.2属性文法的描述 2.2.1FOR语句 for(C1 C2 C3) n C1 n+1 goto n+3 n+2 C3 n+3 if C2==true goto Y.start n+4 goto Y.end+2 Y.start ...................//赋值语句的开始 ...... ................... Y.end ...........
显示全部
相似文档