Engineering a Compiler读书笔记(2):词法分析器

在这里插入图片描述

第二章, 词法分析器


简介
|| 词法分析流程:(加粗字体维步骤)
读取字符流,并应用一组规则来识别单词在源语言中是否合法,如果单词判断为有效,则会给它分配词类,将其聚合形成单词流。

|| 程序设计语言的词法结构(微语法):规定了如何将字符组合为单词
(区分:语法是对单词进行分类,组成句子)

|| 什么是有效标识符:大部分语言中标识符为: 始于一个字母字符,后接上0个或多个字母/数字字符,结束于第一个非字母或数字的字符
eg:有效的标识符:dd55d88dd,fffff。无效的标识符:12fff

|| 关键字(保留字):有特殊含义的有效标识符,词法分析器会自动将其归类到另一个语法范畴中去 eg:static,while,if

|| 对于识别一个单词的FA(有限自动机)来说,单词对应的实际文本称为*“词素”*


1.识别器

|| 识别器是一个可以识别字符流中单词的程序,它通过一套构造方法,由正则表达式转换而成

|| 识别器的转移图:每个圆圈都代表计算中的一个抽象状态
s0是初始状态,s5是接受状态(以双层圆圈绘制),通常省略目标为错误状态的转移
以下为关键字“while”的识别示例:
在这里插入图片描述
以下为new和not的识别器:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值