编译原理学习笔记 三 -- 词法分析

手动地实现词法分析器,首先建立每个词法单元的词法结构图或其他描述,然后编写代码来识别输入中出现的每个词素,并返回识别到的词法单元的有关信息。

可以向一个词法分析器生成工具 (lexical-analyzer generator)描述出词素的模式,然后将这些模式编译为具有词法分析器功能的代码。

词法分析器的作用

  • 词法分析器的主要任务:读入源程序的输入字符,将它们组成词素,生成并输出一个词法单元序列,每个词法单元对应一个词素,该过程中需要与符号表交互。
  • 词法分析器的两个级联的处理阶段:扫描阶段负责完成一些不需要生成词法单元的简单处理,比如删除注释,过滤掉空白,将编译器生成的错误信息与源程序的位置联系起来,宏的扩展等;词法分析阶段处理扫描阶段的输出并生成词法单元。

词法分析及语法分析

编译过程的分析部分划分为词法分析和语法分析的原因:
1. 简化编译器的设计。也就是复杂任务分为多个简单任务,可扩展
2. 提高编译器的效率。
3. 增强编译器的可移植性。

词法单元,模式和词素

  • 词法单元由一个词法单元名和一个可选的属性值组成。词法单元名是一个表示某种词法单位的抽象符号,比如一个特定的关键字或者一个标识符的输入字符序列。词法单元名是语法分析器处理的输入符号。
  • 模式描述一个词法单元的词素可能具有的形式。当词法单元时一个关键字时,它的模式就是组成这个关键字的字符序列;对于标识符和其他词法单元,模式可以和很多符号串匹配。
  • 词素是源程序中的一个字符序列,和某个词法单元的模式匹配,并被词法分
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值