词法分析和词法分析程序
词法分析阶段是编译过程的第一个阶段。这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号)。词法分析程序实现这个任务。词法分析程序可以使用lex等工具自动生成。
语法分析和语法分析程序
语法分析是编译过程的一个逻辑阶段。语法分析的任务是在词法分析的基础上将单词序列组合成各类语法短语,如“程序”,“语句”,“表达式”等等.语法分析程序判断源程序在结构上是否正确.源程序的结构由上下文无关文法描述.
语义分析
语义分析是编译过程的一个逻辑阶段. 语义分析的任务是对结构上正确的源程序进行上下文有关性质的审查, 进行类型审查.
简单来说, 如果将程序比作一个英语句子:
词法分析就是对程序的逐个字符进行分析,看看字符写没写对, 是不是符合规范,如语句@int a=3中,@这个字符错了,因此在这一步会报错。
语法分析就是把字符组合成单词, 然后看看单词是不是拼写对了, 如语句:int1 a=3;中,int拼错了,因此在这一步会报错
句法分析则是看看这些单词组成的句子是不是很通顺, 如语句: int int a=3; int int 不符合规范,因此在这一步会报错。