词法分析

任务:扫描源程序,输出单词符号

单词符号类别:基本字,标识符,常数,运算符,界符

 

问题:单词过长(总是有单词只进来一部分)

解决方法:扫描缓冲区两个半区互补

 

问题:超前搜索

解决方法:基本字作为保留字;使用保留字表;使用空白符做间隔

 

设计

  1. 给出程序设计语言的单词规范——单词表
  2. 对照单词表设计识别该语言所有单词的状态转换图
  3. 根据状态转换图编写词法分析程序

 

 

仅由有限次使用上述三步骤而定义的表达式才是S上的正规式,仅由这些正规式表示的字集才是S上的正规集。

正规式的性质

交换律:e1|e2 = e2|e1    

结合律:e1 |(e2|e3) = (e1|e2)|e3    ; e1(e2e3) = (e1e2)e3  

分配律:e1(e2|e3) = e1e2|e1e3   ;(e2|e3)e1 = e2e1|e3 e1

ee = e e = e         e1e2 <> e2 e1   

 

DFA

NFA

初态只有一个

初态可有多个

状态图上弧只能是单个字符

状态图上弧可以是正规式或e

不可以

同一个字可能出现在同状态射出的多条弧上

DFA是NFA的特例;但是识别能力相同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值