IF-ELSE 条件语句的翻译程序设计
1、问题描述
要求用递归下降法及中间代码三地址形式,对 IF-THEN-ELSE 条件语句完
成编译过程,其中包括词法分析、语法分析、语义分析等,并要求符合下列要
求:
(1)写出符合给定的语法分析方法的文法及属性文法。
(2)完成题目要求的中间代码三地址表示的描述。
(3)写出给定的语法分析方法的思想,完成语法分析和语义分析程序设计。
(4)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程
序。
2、问题分析
按编译原理的设计规则,先建立一个词法分析子程序,对输入的程序依次
进行词法分析,然后对分析后的结果使用递归下降法进行文法分析,同时记录
分析的中间结果使用三地址的形式输出。
3、词法分析
3.1 总体分析
词法分析即对输入的源程序从左到右进行扫描,对组成源程序的字符串拼
接成为单词,并把其转换成属性字输出到文件中。
3.2 具体分析
将属性字分为 5 大类:关键字、标识符、界限符、运算符和常量。首先创
建三个数组用来存放关键字、运算符和界限符。分别如下:
char keyWord[33][10]={"auto","double","main","int","struct","break","else","long",
"switch","case","enum","register","typedef","char","extern","return",
"union","const","float","short","unsigned","continue","for","signed",
"void","default","goto","sizeof","volatile","do","if","while","static"};//关键字
char symbol[12]={'+','-','*','/','%','&','|','~','^','=','>','<'};//运算符
char separate[15]={'!','.','{','}',';','\'','\"','#','(',')','[',']',',','?',':'};//界限符
评论0
最新资源