Atitit.词法分析的原理 理论

1. 分词 .词法分析lexical analysis1

1.1. 分词主要流程1

1.2. 分词的属性如下表token1

1.3. 词法分析器主要包括:构造转换图与转换表、设计词法分析器算法。2

2. 状态转换表2

3. 词性划分2

3.1. Token的类型,根据程序设计语言的特点,单词可以分为五类:关键字、标识符、常量、运算符、界符。以2

3.2. 词法分析的第一阶段即扫描器2

3.3. 词法分析的第二阶段评估器(Evaluator)3

4. Qa3

4.1. 词法分析的逻辑结果包括空格吗3

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

Atitit.词法分析的原理 理论相关推荐

  1. Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle...

    Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle 1. 主键1 2. uniq  index2 3.  ...

  2. atitit.词法分析的实现token attilax总结

    atitit.词法分析的实现token attilax总结 1. 词法分析(英语:lexical analysis)跟token 1 1.1. 扫描器 2 2. 单词流必须识别为保留字,标识符(变量) ...

  3. Atitit.软件兼容性原理与实践 v3 q326.docx

    Atitit.软件兼容性原理与实践 v3 q326.docx 1. 架构兼容性1 2. Api兼容性1 2.1. 新api  vs  修改旧的api1 3. Web方面的兼容性(js,html)1 3 ...

  4. Atitit 《控制论原理与概论attilax总结

    Atitit <控制论原理与概论attilax总结 <控制论> 奠基之作,出自创始人维纳.虽然内容权威,但我认为带有相当强烈的个人色彩,且门槛较高,不适合入门.深入研究控制论必看书籍 ...

  5. Atitit 插件机制原理与设计微内核 c# java 的实现attilax总结

    Atitit 插件机制原理与设计微内核 c# java 的实现attilax总结 1. 微内核与插件的优点1 2. 插件的注册与使用2 2.1. Ioc容器中注册插件2 2.2. 启动器微内核启动3 ...

  6. Atitit.ide技术原理与实践attilax总结

    Atitit.ide技术原理与实践attilax总结 1.1. 语法着色1 1.2. 智能提示1 1.3. 类成员outline..func list1 1.4. 类型推导(type inferenc ...

  7. kafka-4.进阶,ISR,OSR,AR,LW,HW,LEO,ACK原理理论

    kafka 在zk里面可以看到kafka 谁拿到controller [zk: localhost:2181(CONNECTED) 6] get /kafka/controller {"ve ...

  8. php指纹登录原理,指纹识别的工作原理-理论方法-敏捷大拇指-一个敢保留真话的IT精英社区...

    游客,本帖隐藏的内容需要积分高于 10240000 才可浏览,您当前积分为 0 6ff1b54b00754c56c57c09a3d2cbcde8.jpg (14.61 KB, 下载次数: 1) 201 ...

  9. 编译原理 理论知识点

    第一章 引论 编译程序和解释程序是两类重要的高级语言处理程序. 机器语言:计算机可以直接执行的代码形式的指令系统称为机器语言. 翻译程序:源程序 --- 目标程序 汇编程序:汇编语言 --- 机器语言 ...

  10. nodejs gm 中文 linux,nodejs图片处理工具gm用法

    在做H5应用中,有时候会涉及到一些图片加工处理的操作,nodejs有一个很好的后台图片处理module,就是这里说的gm.gm有官方文档,但感觉写得太抽象,反而看不懂了.这里把一些常见的用法写下,供大 ...

最新文章

  1. 热点快评:德国强化AI战略,系统、技术等“多轮并行”
  2. JDK7 AIO介绍
  3. 袁绍困局与张朝阳的雄心——类微博的狐友能让搜狐重回主战场吗
  4. mongoDB add user in v3.0 问题的解决(Property 'addUser' of object admin is not a func)
  5. UCOS中断函数的编写
  6. Azure Sentinel -- 云原生企业安全信息和事件管理平台(SIEM)初探系列一
  7. linux :Docker 方式 安装 zookeeper、阿里服务器上 Docker 运行 zookeeper
  8. SpringBoot写后端接口,看这一篇就够了!
  9. Oracle中各个命中率的总结及调优笔记整理
  10. Coinbase在今日比特币下跌时出现宕机
  11. 吴恩达深度学习笔记 course 2 1.1~1.14 深度学习的实用层面
  12. python学习day02
  13. 苹果公布 macOS Monterey 兼容机型列表
  14. 在web of science / 知网 上生成题录
  15. java生成json格式数据 和 java遍历json格式数据
  16. 机器学习(6)——凸优化理论(一)
  17. Java + OpenCV 实现图片年龄识别(JavaCV)
  18. 有关神经网络的训练算法,神经网络算法通俗解释
  19. B2C网站提高转化率的方法
  20. 让AI为你制作思维导图 —— ChatMind

热门文章

  1. java转sap hybris方向_SAP Hybris的Convertor, Populator, Facade和DTO这几个概念是如何协同工作的...
  2. Spring AOP 本质(1)
  3. Jquery 中 $('obj').attr('checked',true)失效的几种解决方案
  4. 关于 java 上传,下载和导入报java.lang.IllegalStateException异常解决办法
  5. Mysql中将查询出来的多列的值用逗号拼接
  6. 从SQLSERVER/MYSQL数据库中随机取一条或者N条记录
  7. Mocha BSM产品亮点——SNMP Trap的支持
  8. Yii集成PHPWord
  9. ubuntu 安装node.js
  10. flask-login