上篇讲述了句型的两种类型--自上而下和自下而上,本篇进入编译程序的第一个工作阶段--词法分析。
我们在第二篇中讲述了关于词法分析的简单介绍,词法分析工作可以独立的一遍,把字符流的源程序变成单词序列,输出在一个中间文件上,这个文件作为下一个工作阶段-词法分析程序的输入而继续编译的过程。
一般情况下降词法程序设计成一个子程序,每当语法分析程序需要一个单词的时候,则调用该子程序。词法分析程序每得到一次调用,便从源程序文件中读入一些字符,直到识别出一个单词。
那经过第一阶段的加工,我们的词法分析之后,得到什么?
词法分析的输出:读入源程序,输出单词符号,单词符号包括单词的中类和单词自身的值,例如关键字有 end if 、while、var等;运算符有+ ,*,《=等。
又有一个问题了,为什么要有这个阶段,将词法分析这个工作分为一个阶段?为什么将编译过程分为词法分析和语法分析?