【暑期实训】【3-2】词法分析

概述

词法分析是编译器的第一个步骤。词法分析是编译器中与源文件打交道的唯一模块。
一般来说,词法分析负责读取原始文件,识别原始文件中的每个“单词”,清除空白字符和注释。
为了让编译器在检查到错误时能正确报告错误位置,词法分析器还要记录每个单词在源文件的位置。

实现方式

由于大多数情况下都可以将语言用正则文法描述,因此可以使用自动机方式实现词法分析器。

IO优化

词法分析器是一个词一个词地处理的,但不能每次只从io设备中取一个词,因为这太影响效率了。
词法分析器应当构造一个合适的io缓冲区,以便加快编译速度。

错误检测

在词法分析阶段,我们可以检查到单词的拼写错误。

错误恢复

当词法分析器检测到错误时,应从错误中恢复,以检查源文件中的更多错误。
如果我们发现一个字符不能再输入到自动机中时,我们认为发生了错误。如果之前自动机曾经到达过可接受状态,那么我们回退到这一状态,并将结果返回;如果之前未曾达到过可接受状态,那么词法分析器进入恐慌模式,不断抛弃输入中的字符,直到可以正确地输入到状态机中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值