编译过程中的词法分析、语法分析、语义分析的简单讲解

本文详细解释了代码编译过程中的词法分析、语法分析和语义分析步骤,涉及扫描器的工作、记号生成、语法树构建以及静态语义检查,指出任何阶段出错会导致编译错误。
摘要由CSDN通过智能技术生成

当代码被被编译时将会进行 词法分析、语法分析、语义分析 ,

后面我们将用这段代码来举例说明:  

array[index]  =  (index+4)*(2+6);  


 

词法分析

当源代码被输入扫描器,扫描器的任务就是简单的进行词法分析,词法分析将会把代码中的字符分割成一系列的记号(关键字、标识符、字面量、特殊字符等)。

像上面例子将会被分析为:


 

语法分析

接下来,语法分析器将会对扫描产生的记号进行语法分析,从而产生语法树。这些语法树是以表达式为节点的树。

                                                                        示图:


 

语义分析

最后将由语义分析器来完成语义分析,即对表达式的语法层面分析。编译器所能做的分析是语义的静态分析。静态语义分析通常包括声明和类型的匹配,类型的转换等。这个阶段会报告错误的语法信息。 

                                                                        示图:


当上面各分析中有不过关的,便会编译错误

完! 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值