前言:
前两天串这一部分内容的时候,对于词法分析,语法分析,语义分析这三项不是很熟悉,所以就简单总结下,希望能够帮助理解;
内容:
1、词法分析:
词法分析是编译过程的第一个阶段,这个阶段的任务可以看成是-从左到右一个字符一个字符地读入源程序,从中识别出一个个“单词”符号,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号);
通过词法分析程序实现上述读入源程序,识别符号的任务,词法分析过程依据的是语言的词法规则;
输出:词法分析程序输出的“单词”常以二元组的方式输出,即单词种别和单词自身的值;
认识:词法, 定义组成语言的单词, 是语言中最小单元;
2、语法分析:
语法分析是编译过程的一个逻辑阶段,此阶段的任务是在词法分析的基础上将单词序列组合成各类语法短语,如“程序”,“语句”,“表达式”等等;
语法是用户数据与控制信息的结构与格式
认识:语法-- 将单子组织成有含义的短语和句子的规则,正如英语翻译中的语法;
3、语义分析(Syntax analysis)
语义分析是编译过程的一个逻辑阶段,语义是解释控制信息每个部分的意义,它规定了需要发出何种控制信息,以及完成的动作与做出什么样的响应,此阶段的任务是对结构上正确的源程序进行上下文有关性质的审查, 进行类型审查;
收集类型信息供后面的代码生成阶段使用;
语