词法分析 词法分析阶段是编译过程的第一个阶段。这个阶段的任务是从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(也称单词符号或符号)。这里所谓的单词是指逻辑上紧密相连的一组字符,这些字符具有集体含义。比如标识符用于表示变量名,是由字母字符开头,后跟字母、数字字符的字符序列组成的一种单词。保留字(关键字或基本字)是一种单词,此外还有算符,界符等等。例如某源程序片断如下: begin var sum, first, count: real; sum∶=first+count*10 end. 词法分析阶段将构成这段程序的字符组成了如下19个单词序列: 1. 保留字begin 2. 保留字var 3. 标识符sum 4. 逗号, 5. 标识符first 6. 逗号, 7. 标识符count 8. 冒号: 9. 保留字real 10. 分号; 11. 标识符sum 12. 赋值号∶= 13. 标识符first 14. 加号+ 15. 标识符count 16. 乘号* 17. 整数10 18. 保留字end 19. 界符· 可以看出,五个字符即b,e,g,i和n构成了一个称为保留字的单词begin,两个字符即∶和=构成了表示赋值运算的符号∶=。这些单词间的空格在词法分析阶段都被滤掉了。 我们知道, 标识符用于表示变量名,可以很方便的使用id1,id2和id3分别表示sum,first和count三个标识符的内部形式,那么经过词法分析后上述程序片断中的赋值语句 sum∶=first+count*10则表示为 id1∶=id2+id3*10 |