全球旧事资料 分类
0或VisualC60。
6.实验考核方式:.实验考核方式:
1.提交实验报告2.演示程序和答辩(抽查)
7.实验辅导.
(1)词法分析程序的功能词法分析程序又称为扫描器,其功能在于依次扫视字符串形式源程序中的各个字符,逐个识别出其中的单词,并将其转换为内部编码形式的单词符号串作确为输出。通常,可采用二元式(class,value)来表示一个单词符号的内部编码,其中:class为一整数码,用于表示该单词的类别;value则是该单词之值(如变量名在符号表中序号,常数的二进制表示,以及运算符和分隔符的编码等等)。概括地说,扫描器在其工作过程中,一般应完成下列的任务:(1)识别出源程序中的各个单词符号,并将其转换为内部编码形式;(2)删除无用的空白字符、回车字符以及其它非实质性字符;(3)删除注释;(4)进行词法检查,报告所发现的错误。此外,视编译工作流程的组织,一些编译程序在进行词法分析时,还要完成将所识别出的标识符登录到符号表的工作。2实例分析2实例分析对于表2所列的各类单词符号,词法分析程序可按图1所示的状态转换图来构造。
5
f表2一个语言的单词符号及分类码表
图1识别表2所列语言单词的DFA及相关的语义过程
6
f相关变量和子程序说明如下:
函数GETCHAR每调用一次,就把扫描指示器当前所指示的源程序字符送入字符变量ch,然后把扫描指示器前推一个字符位置。字符数组TOKEN用来依次存放一个单词词文中的各个字符。函数CAT每调用一次,就把当前ch中的字符拼接于TOKEN中所存字符串的右边。函数LOOKUP每调用一次,就以TOKEN中的字符串查保留字表,若查到,就将相应关键字的类别码赋给整型变量c;否则将c置为零。函数RETRACT每调用一次,就把扫描指示器回退一个字符位置即退回多读的那个字符。函数OUT一般仅在进入终态时调用此函数,调用的形式为OUTc,VAL。其中,实参c为相应单词的类别码或其助记符;当所识别的单词为标识符和整数时,实参VAL为TOKEN即词文分别为字母数字串和数字串,对于其余种类的单词,VAL均为空串。函数OUT的功能是,在送出一个单词的内部表示之后,返回到调用该词法分析程序的那个程序。
实验二、语法分析器的设计实验二、
1.实验目的:.实验目的:
123掌握利用预测分析法进行语法分析的原理;熟悉文法的机内表示;掌握语法分析器的设计与调试;
2.实验内容:.实验内容:
1分析如下表3所定义PASCAL语言子集的语法,改写文法使其成为LL1文法;2构造文法的预r
好听全球资料 返回顶部