Atitit.词法分析的原理 理论

1. 分词 .词法分析lexical analysis 1

1.1. 分词主要流程 1

1.2. 分词的属性如下表token 1

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

2. 状态转换表 2

3. 词性划分 2

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

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

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

4. Qa 3

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.blogcn.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.web原理 理论attilax总结

    atitit.web原理 理论attilax总结 1. Web3.01 2. Web的未来趋势1 3. Web语言与应用导论_百度百科.html2 4. <Web设计与编程导论(影印版)> ...

  2. Atitit.html css  浏览器原理理论概论导论attilax总结

    Atitit.html css  浏览器原理理论概论导论attilax总结 1.1. 浏览器是怎样工作的:渲染引擎,HTML解析(连载二)1 2. 5.1.1 DOM标准 1011 3. <We ...

  3. atitit.词法分析原理 词法分析器 (Lexer)

    atitit.词法分析原理 词法分析器 (Lexer) 1. 词法分析(英语:lexical analysis)1 2. :实现词法分析程序的常用途径:自动生成,手工生成.[1] 2 2.1. 词法分 ...

  4. Atitit. servlet 与 IHttpHandler  ashx  listen 和HttpModule的区别与联系 原理理论 架构设计   实现机制    java php c#.net js javascript  c++ python

    Atitit. servlet 与 IHttpHandler  ashx  listen 和HttpModule的区别与联系 原理理论 架构设计   实现机制    java php c#.net j ...

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

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

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

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

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

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

  8. Atitit Atitit.软件兼容性原理----------API兼容 Qa7

    Atitit Atitit.软件兼容性原理----------API兼容 Qa7 1. 兼容性的重要性与反面教材1 2. 提升兼容性的原则2 2.1. What 与how 分离2 2.2. 老人老办法 ...

  9. Atitit 游戏的原理与概论attilax总结

    Atitit 游戏的原理与概论attilax总结 1. 游戏历史2 1.1.1. 盘点PC游戏史上最重要的50款游戏2 1.1.2. 回味人类文明进程 五款经典的历史游戏2 2. 游戏类型(主要分为6 ...

随机推荐

  1. (十二) 一起学 Unix 环境高级编程 (APUE) 之 进程间通信(IPC)

    . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...

  2. myeclipse中Web App Libraries无法自动识别lib下的jar包

    在项目目录下找到.object文件修改 <natures> <nature>org.eclipse.jem.workbench.JavaEMFNature</nature ...

  3. Linux网络编程-SIGPIPE信号导致的程序退出问题

    当客户端close关闭连接时,若server端接着发送数据,根据TCP协议的规定,server端会收到RST响应,当server端再次往客户端发送数据时,系统会发出一个SIGPIPE信号给server ...

  4. PHP 常用字符串函数整理

    PHP语言中的字符串函数也是一个比较易懂的知识.今天我们就为大家总结了将近12种PHP字符串函数,希望对又需要的朋友有所帮助,增加读者朋友的PHP知识库. 1.查找字符位置函数 strpos($str ...

  5. JSON的故事

    1.介绍JSON http://www.json.org/ https://developer.mozilla.org/zh-CN/docs/JSON 2.json的序列化和反序列化 序列化方法 va ...

  6. PAC自动代理文件格式,教你如何写PAC文件

    PAC文件格式 PAC文件是纯文本格式的,实际上就是JavaScript文件.Chrome/Chromium的扩展Switchy!的"Auto Switch Mode"功能实际上也 ...

  7. DB2 UDB DBA 核对清单

    本文摘自 http://www-128.ibm.com/developerworks/cn/db2/library/techarticles/dm-0404snow/index.htmlDB2 UDB ...

  8. mysql innodb存储引擎介绍

    innodb存储引擎1.存储:数据目录.有配置参数为“ innodb_data_home_dir ” .“ innodb_data_file_path ” 和 “innodb_log_group_ho ...

  9. ifram,framset 互相调用JS

    window.parent.frames["Indexbanner3"].aa(); http://blog.163.com/wenchangqing_live/blog/stat ...

  10. python基础语法(1)

    一.基本概念 1. python中数有四种类型:整数.长整数.浮点数和复数. 整数, 如 1 长整数 是比较大的整数 浮点数 如 1.23.3E-2 复数 如 1 + 2j. 1.1 + 2.2j 2 ...