全球旧事资料 分类
、因式和运算对象分别用E、T、F和i代表,则G2可写成:G2E:E→TETETT→FTFTFF→iE输入:由实验一输出的单词串,例如:UCON,PL,UCON,MU,ID输出:若输入源程序中的符号串是给定文法的句子,则输出“RIGHT”,并且给出每一步分析过程;若不是句子,即输入串有错误,则输出“ERROR”,并且显示分析至此所得的中间结果,如分析栈、符号栈中的信息等,以及必要的出错说明信息。3、语义分析程序设计与实现
对文法G2算术表达式中的产生式添加语义处理子程序,完成运算对象是简单变量(标识符)和无符号数的四则运算的计值处理,将输入的四则运算转换为四元式形式的中间代码。
输入:包含测试用例(由标识符、无符号数和、、、、、构成的算术表达式)的源程序文件。
输出:将源程序转换为中间代码形式表示,并将中间代码序列输出到文件中。若源程序中有错误,应指出错误信息
二、设计思路
1、词法分析程序设计与实现1单词分类为了编程的实现。我们假定要编译的语言中,全部关键字都是保留字,程序
员不得将它们作为源程序中的标识符;作了这些限制以后,就可以把关键字和标识符的识别统一进行处理。即每当开始识别一个单词时,若扫视到的第一个字符为字母,则把后续输入的字母或数字字符依次进行拼接,直至扫视到非字母、数字字符为止,以期获得一个尽可能长的字母数字字符串,然后以此字符串查所谓保留字表(此保留字表要事先造好),若查到此字符串,则取出相应的类别码;反之,则表明该字符串应为一标识符。
f表1语言中的各类单词符号及其分类码表
单词符号类别编码类别码的助记符
单词值
begi

1
e
d
2
if
3
the

4
else
5
标识符
6
无符号常数
7

8

9

10

11

12

13

14

15

16

17

18
BEGINEND
IFTHENELSE
IDUCON
LTLEEQNEGTGEISPLMIMUDI
字母打头的字母数字串机内二进制表示
2)词法分析器的设计函数GETCHAR:每调用一次,就把扫描指示器当前所指示的源程序字符送入字符变量ch,然后把扫描指示器前推一个字符位置。字符数组TOKEN:用来依次存放一个单词词文中的各个字符。函数CAT:每调用一次,就把当前ch中的字符拼接于TOKEN中所存字符串的右边。函数LOOKUP:每调用一次,就以TOKEN中的字符串查保留字表,若查到,就将相应关键字的类别码赋给整型变量c;否则将c置为零。函数RETRACT:每调用一次,就把扫描指示器回退一个字符位置(即退回多读的那个字符)。
函数OUT:一般仅在进入终态时调用此函r
好听全球资料 返回顶部