您当前所在位置:首页 > 新闻中心 > 行业动态

优发官网首页/  

优发官网首页.编译原理 (4) 词法分析

    发布时间:2024-05-18 01:53:05 来源:优发官网首页登录 作者:优发网站是多少    

  对源程序进行预处理,如删除注释和回车换行符,宏展开等 (预处理,C 中的#define,删除注释等等)

  识别源程序中的单词,创建符号表并在相应的符号表中登录信息 (单词在符号表中进行登记:是什么,类型是什么)

  将单词与行号关联起来,以便编译器能将错误信息与源程序位置联系起来(与行进行关联,便于编译器打印错误信息的位置)

  1. 作为独立的一遍: 把源程序的完整文件转换为单词符号序列文件 (单独实现,就是转化为单词符号序列)

  2. 与语法分析合在一起作为一遍,把词法分析作为一个子程序,由语法分析器通过调用词法分析子程序来获得当前单词符号二元式,供语法分析使用

  单词符号(token): 即为我们前面讨论的词法分析器的输出形式,二元式类别,属性值

  模式(pattern): 描述一个单词符号的可能形式,比如类别为标识符的单词符号应具有什么样子的形式?

  (构建模板: 和正则表达式原理一样,就是抽象出一个更加泛化的,适用范围更加广泛的”模板串“)

  词素(lexeme): 源程序中的一个字符序列,是单词符号的实例,比如源程序里的关键字“if”

  letter(letter digit)* (第一个是字母,第二个是字母或者数字,* 闭包:可以是空串)

  正规式(r)所匹配的所有字符串的集合称为正规集,实际上是一个正规语言(3型语言),记为L(r)

  id = letter (letter digit)* (必须是字符开头:可以是字母也可以是下划线,后面接任意个字符或者数字)

  (可以没有指数,一旦有了必须有E ,然后可以是+ 也可以是-,也可以没有符号(正号省略),必须有一个数字串)

  (这里的1 和 3 状态实际上是一样的,只是为了区别后续的识别是a 还是 b ,所以用了两个状态1 和 3)

  给定输入串x,它能被一个NFA识别,当且仅当在该NFA的状态转移图中存在一条从开始状态出发到某个接受状态的转移路径。

  正规表达式转化为DFA 是困难的,但是转化为NFA是简单的,由于NFA和DFA的表达能力是一样的,所以如果能找到NFA转化为DFA的方法,那么会极大提高正规表达式的实现效率

  4. 考虑文法G[S]:S→ aSbS bSaS ε(1) 为句子abab构造两个不同的最左推导,以此说明该文法是二义的。(2) 为abab构造对应的分析树。


优发官网首页

优发官网首页/  

优发网站是多少/  CONTACT US

联系人:黄总
手机:13401361033
电话:0519-81808085
传真:051988888888
邮箱:dongyuejiari@douyin.com
地址:江苏省常州市武进区人民中路151号

服务热线

0519-81808085

功能和特性

价格和优惠

获取内部资料

扫一扫