Atitit.词法分析的原理 理论
Atitit.词法分析的原理 理论
1.3. 词法分析器主要包括:构造转换图与转换表、设计词法分析器算法。2
3.1. Token的类型,根据程序设计语言的特点,单词可以分为五类:关键字、标识符、常量、运算符、界符。以2
1. 分词 .词法分析lexical analysis
1.1. 分词主要流程
字符切分,对比字典词典得到分词,并查阅词典,标注词性。完善其他属性,输出
当词法分析器发现了一个标识符的词素时,要将这个词素添加到符号表中。
其他任务:
· 过滤掉源程序中的注释和空白。
· 将编译器生成的错误信息与源程序的位置联系起来。记录行号等。
词法分析器的两个级联的处理阶段:
1. 扫描阶段:简单处理,删除注释,压缩空白字符。
2. 词法分析阶段:处理扫描阶段的输出并生成词法单元。
1.2. 分词的属性如下表token
参考antlr..
Col |
列数 |
|
Filename |
所属文件名 |
|
Line |
行数 |
|
Text |
分词 |
|
Type |
词性 |
|
作者:: ★(attilax)>>> 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
1.3. 词法分析器主要包括:构造转换图与转换表、设计词法分析器算法。
词法分析器的核心就是依据转换图识别单词。不过,事实并非完全如此。由于某些程序设计语言的词法定义缘故,仅仅依据程序2-1的算法是不足以完成词法分析的
2. 状态转换表
3. 词性划分
3.1. Token的类型,根据程序设计语言的特点,单词可以分为五类:关键字、标识符、常量、运算符、界符。以
读者可能对"单词"感到有点疑惑,不明白到底什么才是词法分析中所说的"单词"。试图回答这个问题就必须了解几个基本概念。这里,引入几个程序设计语言相关的名词。
(1)标识符:用户自定义的变量名、函数名等字符串。
(2)关键字:具有特殊含义的标识符。
(3)运算符:例如+、-、*、/ 等。
(4)常量:例如3.24、92等。
(5)界符:具有特殊含义的符号,如分号、括号等。
3.2. 词法分析的第一阶段即扫描器
3.3. 词法分析的第二阶段评估器(Evaluator)
,语法分析器需要第二阶段的评估器(Evaluator)。评估器根据语素中的字符序列生成一个“值”,这个“值”和语素的类型便构成了可以送入语法分析器的单词。一些诸如括号的语素并没有“值”,评估器函数便可以什么都不返回。整数、标识符、字符串的评估器则要复杂的多。评估器有时会抑制语素,被抑制的语素(例如空白语素和注释语素)随后不会被送入语法分析器。
4. Qa
4.1. 词法分析的逻辑结果包括空格吗
好像不包括,参考 atitit.c词法分析器的详细原理.docx。。参考请问编译原理词法分析器是干什么用的,怎么用???-CSDN论坛-CSDN.NET-中国最大的IT技术社区.html, 也是不包括
分号逗号是包括的。
词法分析的逻辑结果包括分界符号码
看起来好像包括
包括字符串双引号吗,好像包括,参考 请问编译原理词法分析器是干什么用的,怎么用???-CSDN论坛-CSDN.NET-中国最大的IT技术社区.html
for(int i=0;++i;i<10)printf("Hello world");
printf
(
"Hello聽world"
)
;
5. 参考资料
词法分析器的作用 - cyendra - 博客园.html
相关文章
- 脱壳——UPX脱壳原理(脱壳helloworld)
- java定时器之Timer使用与原理分析[通俗易懂]
- 深入分析Go defer底层原理
- MySQL数据库原理学习(十三)
- 腾讯面试官曰Mysql架构的内部模块索引原理及性能优化思路谁会?
- NLP涉及技术原理和应用简单讲解【二】:paddle(分布式训练、AMP自动混合精度训练、模型量化、模型性能分析)
- webpack原理(3):Tapable源码分析及钩子函数作用分析
- 【运筹学】线性规划 人工变量法 ( 单纯形法总结 | 人工变量法引入 | 人工变量法原理分析 | 人工变量法案例 )
- 【视频】随机波动率SV模型原理和Python对标普SP500股票指数预测|数据分享|附代码数据
- 【深入浅出Spring原理及实战】「源码调试分析」深入源码探索Spring底层框架的的refresh方法所出现的问题和异常
- 使用redis生成唯一编号及原理示例详解
- MySQL 原理与优化之Limit 查询优化
- Glide原理分析(二):Engine加载流程详解手机开发
- MySQL数据库存储原理:系统实现方式与分析(mysql数据库存储原理)
- HashMap原理和源码分析详解编程语言
- Linux内存深度解析 — 从容量概念到原理(linux内存详解)
- Linux网桥:原理深入分析(linux网桥原理分析)
- Java Reference核心原理分析
- 深入探究Redis:解析其工作原理(redis工作原理)
- 探索 Redis 缓存的注解原理(注解redis缓存原理)
- 图解Redis数据结构实现原理(图解redis数据结构)
- Redis集群基于分布式系统的原理(redis集群基本原理)
- Oracle VIP原理及其实用性分析(oracle vip原理)
- 自适应负载均衡算法原理与实现
- ucenter通信原理分析