本文介绍: 词法分析语法分析语义分析前端处理犹如阅读英文文章,往往我们需要先理清文章中各个词的意思,这类似词法分析,得到“单词序列”;再梳理整篇文章的脉络,这类似语法分析,得到描述文章脉络的“抽象语法树”;再检查文章的议论是否逻辑正确、叙述是否前后连贯、抒情是否价值观一致,这类似语义分析,得到格式正确的“抽象语法树”。前端处理的目标就是彻底理解源代码,分析源代码内容,完成词法分析,语法分析和语义分析,得到基本符合语言设计规范的“抽象语法树”。词法分析源代码→分析单词序列。
抽象语法树
词法分析概述
高级语言源程序由一系列的句子构成,句子由单词按照一定的规则构成,而单词又由字符按照一定规则构成的。词法分析是编译基础,主要分析源程序中的字符流能否构成正确的单词,执行词法分析的程序称为词法分析程序或扫描器。
词法分析任务是:从左到右逐个字符扫描输入的源程序,按照构词规则,检查词法错误,识别出正确的单词,并输出单词的内部表示形式。如果识别过程中发现错误或无法识别的单词,则输出有关错误信息。
识别单词的目的是为了后续阶段的使用。因此为了简化后续阶段的工作,需要对每个单词(或单词类别)进行编码,这个编码称为种别码,又称token值。当识别出一个单词时,就将其种别码及单词自身的值一起输出,把作为字符串输入的源程序改造成单词记号换的中间形式(又称为token串),提交给语法分析程序使用。
语法分析概述
语法分析器的作用:根据词法分析器提供的单词流,为语法正确的输入构造抽象语法树;检查输入中的语法(可能包括词法)错误,并调用出错处理器进行适当处理。
许多编译器,特别是由自动生成工具构造的编译器,往往其前端的中心部件就是语法分析器。
语义分析概述
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。