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. cocos2d-x 坐标系

    OPenGL坐标系:原点为屏幕左下角 屏幕坐标系:原点在屏幕左上角

  2. Java学习笔记14--动态代理

    InvocationHandler接口 public interface InvocationHandler{ public Object invoke(Object proxy,Method met ...

  3. topsort | | jzoj[1226] | | NOIP2003神经网络

    今天终于通过了那道永远都看不懂题目的神经网络... 所谓拓扑排序,就是在有向无环图中,根据已经有的点和点之间的关系进行排序 引用jzyz教材上的栗子:比如说奶牛比较食量大小,我现在拿到的是cow[i] ...

  4. iOS富文本的使用

    NSString *name = nil; if (_payNumber == 1) { name = [NSString stringWithFormat:@"向%@收款",na ...

  5. JS基本语法

    1.JS嵌入网页的程序 2.解释型语言--用浏览器解释(必须需要浏览器),一开始是数据验证(编程语言) 7天开发 3.ECMA标准化 4.JS与JAVA没有任何关系 JS增加用户的交互 5.JS有常量 ...

  6. Web开发中的主要概念

    一.Web开发中的主要概念1.静态资源:一成不变的.html.js.css2.动态资源:JavaWeb.输出或产生静态资源.(用户用浏览器看到的页面永远都是静态资源) 3.JavaEE:十三种技术的集 ...

  7. VPN断线原因解析- ADSL惹的祸

    在我们使用VPN的时候,最讨厌的就是无故的断线了,可能正在和好基友一起副本,或者正在视频热聊中,还或者youtube视频看的正起劲,突然windows一个对话框弹出 - “连接已经断开”.实在是太影响 ...

  8. 用Fragment制作的Tab页面产生的UI重叠问题

    本文出处:http://blog.csdn.net/twilight041132/article/details/43812745 在用Fragment做Tab页面,发现有时候进入应用会同时显示多个T ...

  9. codeforces 429E

    题意:给定n<=100000线段[l,r],然后给这些线段染色(red or blue),求最后平面上任意一个点被蓝色及红色覆盖次数只差的绝对值不大于1 思路:把每条线段拆成2个点[l<& ...

  10. JQuery学习(表单对象属性)---checked

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...