JavaShuo
栏目
标签
词法分析器
时间 2019-11-08
标签
词法
分析器
繁體版
原文
原文链接
词法分析器
前言:
词法分析是
编译
的第一阶段。它的含义是当程序进入编译器的时候首先是词法分析去分析它。也就能够得出词法分析器的主要任务。
词法分析器的主要任务:
读入源程序的输入字符(好比说C语言程序的
#
)、将它们组成
词素
, 生成并输出一个
词法单元序列
, 每一个词法单元对应于一个
词素
。下一步就是进行语法分析(这不是本文章讨论的内容了), 这个词法单元序列被输出到语法分析器进行语法分析。
词法分析器的其余任务:
过滤掉源程序中的注释和空白(例如: 空格、换行符、制表符以及在输入中用于分隔词法单元的其余字符);
编译器生成的错误消息与源程序的位置联系起来。
词法分析器能够负责记录遇到的换行符的个数,以便给每一个出错消息一个行号。在某些编译器中,词法分析器会创建源程序的一个拷贝,并将出错信息插入到适当位置。若是源程序使用了一个宏预处理器,则宏的扩展也能够由词法分析器完成。
词法分析器的处理阶段:
有的时候,词法分析器能够分红两个级联的处理阶段:
code
扫描阶段
主要负责完成一些不须要生成词法单元的简单处理,好比删除注释和将多个连续的空白字符压缩成一个字符。
词法分析阶段
是较为复杂的部分,它处理扫描阶段的输出并生成词法单元。
词法单元、模式和词素:
词法单元
:
词法单元
由一个词法单元名和一个可选的属性值组成。词法单元名是一个表示某种词法单位的抽象符号,好比一个特定的关键字,或者表明一个标识符的输入字符序列。词法单元名字是由语法分析器处理的输入符号。
模式
描述了一个词法单元的词素可能具备的形式。当词法单元是一个关键字时,它的模式就是组成这个关键字的字符序列。对于标识和其余词法单元,模式是一个更加复杂的结构,它能够和不少符号串匹配。
词素
是源程序中的一个字符序列,它和某个词法单元的模式匹配,并被词法分析器识别为该词法单元的一个实例。
相关文章
1.
词法分析器
2.
C# 词法分析器(六)构造词法分析器
3.
词法分析器_CSS词法分析器
4.
简易词法分析器
5.
词法分析器JFLEX
6.
Lex词法分析器
7.
PL/0 词法分析器
8.
java 词法分析器
9.
C# 词法分析器(一)词法分析介绍
10.
[编译原理-词法分析(三)] 词法分析器
更多相关文章...
•
XML DOM 解析器
-
XML DOM 教程
•
PHP XML Expat 解析器
-
PHP教程
•
算法总结-二分查找法
•
Docker容器实战(七) - 容器眼光下的文件系统
相关标签/搜索
分词器
分析器
算法分析
分析法
句法分析
词法
分词
法器
分析
分法
浏览器信息
PHP教程
Docker教程
算法
服务器
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
gitlab新建分支后,android studio拿不到
2.
Android Wi-Fi 连接/断开时间
3.
今日头条面试题+答案,花点时间看看!
4.
小程序时间组件的开发
5.
小程序学习系列一
6.
[微信小程序] 微信小程序学习(一)——起步
7.
硬件
8.
C3盒模型以及他出现的必要性和圆角边框/前端三
9.
DELL戴尔笔记本关闭触摸板触控板WIN10
10.
Java的long和double类型的赋值操作为什么不是原子性的?
本站公众号
欢迎关注本站公众号,获取更多信息
相关文章
1.
词法分析器
2.
C# 词法分析器(六)构造词法分析器
3.
词法分析器_CSS词法分析器
4.
简易词法分析器
5.
词法分析器JFLEX
6.
Lex词法分析器
7.
PL/0 词法分析器
8.
java 词法分析器
9.
C# 词法分析器(一)词法分析介绍
10.
[编译原理-词法分析(三)] 词法分析器
>>更多相关文章<<