FOR循环语句的翻译程序设计.docVIP

  • 16
  • 0
  • 约9.97千字
  • 约 18页
  • 2017-02-09 发布于重庆
  • 举报
FOR循环语句的翻译程序设计

目录 1 系统描述 2 1.1目的 2 1.2设计内容: 2 1.3 翻译过程 3 1.4初始条件: 3 1.5 开发平台 3 2文法及属性文法的描述 3 3 语法分析表设计 4 3.1 LR分析概述 4 3.2 LR(0)分析表 5 3.3 LR语法分析过程的设计思想及算法 7 3.4 翻译方法 8 4 中间代码形式的描述及中间代码序列的结构设计 8 5简要的分析与概要设计 9 6详细的算法描述 9 6.1 main函数 10 6.2词法分析 10 6.3 语法分析 12 7 测试方法和测试结果 13 7.1测试过程 13 7.2 测试结论 14 8 研制报告 14 8.1研制过程 14 8.2本设计的评价 15 8.3个人心得体会 15 9 参考文献 16 本科生课程设计成绩评定表 17 FOR循环语句的翻译程序设计 —— LR方法 、输出四元式 1 系统描述 1.1目的 通过设计、编制、调试一个FOR循环语句的语法及语义分析程序,加深对语法及语义分析原理的理解,实现词法分析程序对单词序列的词法检查和分析,并且实现对单词序列的语法分析、语义分析以及中间代码生成。 1.2设计内容: 本设计按照要求设计出for语句的简单文法,并使用LR分析法对用户输入的程序进行分析和翻译。 对下列正确的程序输入: for(i=0;i10;i++) { m=m+i; } 结果程序要对该输入进行词法分析,然后利用LR分析法对词法分析后得到的单词序列进行语法分析,经过语法制导翻译显示出等价的四元式表示的中间代码。 对于错误的程序输入,如: for(i=0;i10) { m=m+i; } 结果程序要指出程序出错。 1.3 翻译过程 ①词法分析:词法分析是编制一个读单词的过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。程序语言的单词符号一般分为五种:关键字(保留字/基本字)if、while、begin…;标识符:常量名、变量名…;常数:34、56.78、true、‘a’、…;运算符:+、-、*、/、〈、and、or、….、;界限符:, ; ( ) { } /*…。 ②语法分析:语法分析是编译程序的核心部分,其主要任务是确定语法结构,检查语法错误,报告错误的性质和位置,并进行适当的纠错工作。此次设计中语法分析中主要通过LR分析表对语法分析处理过程进行控制,使四元式翻译的工作有条不紊的进行,同时识别语法分析中的语法错误。 ③中间代码生成:为了使编译程序有较高的目标程序质量,或要求从编译程序逻辑结构上把与机器无关和与机器有关的工作明显的分开来时,许多编译程序都采用了某种复杂性介于源程序语言和机器语言之间的中间语言。常用的几种中间语言有: 逆波兰式、四元式、三元式、树表示。本课程设计主要实现四元式的生成。 1.4初始条件: 理论:掌握一种计算机高级语言的使用。学完编译课程,掌握词法分析程序设计方法,LR语法分析方法,以及语法制导的翻译和中间代码生成技术。 实践工具和环境:计算机实验室提供计算机及软件环境。 1.5 开发平台 所使用的系统:Windows XP 程序开发工具:Visual C++ 6.0 程序设计语言:C++。 。 2文法及属性文法的描述 按照设计要求,设计出的For语句的符合简单优先定义的文法规则及相关的语义规则如下: 产生式 语义规则 S( f ( E ; F ; G ){ H ;} goto S( f ( E ; X ; Y ){ H ;} goto E( id = c id.value=c.value; F( id c If id.value=c.value goto over ; G( i

文档评论(0)

1亿VIP精品文档

相关文档