编译原理------词法分析

识别出每一个单词。

源代码  --  词法分析器   --  记号流(token)

 

词法分析器:把构成源程序的字符流翻译成记号流,还完成与用户接口的一些任务。

正规式  状态转换图

 

通过分词操作,把句子以单词或者词组为单位进行划分,得到一个句型

(欢迎新老师生前往食堂就餐)

 

把原始的字符串流形式的程序文本转换为词法记号流的形式

词法单元:同种记号编程语言中的合法字符串

词法记号:满足某种规则的词法单元,采用同种记号

 

词法单元   --  模式(规则)   --   词法记号

 

串与语言

字母表:符号的有限集合,例 {0,1}

串:符号的有穷序列, 例: 00110,e

语言:字母表的一个串集, 例:{}, {}, {}

 

语言的运算

和       L\cupM = {s | s\inL 或 s\inM}

连接   L\capM = {sd | s\inL 且 d\inM}

指数  L^{0} = {\varepsilon}  , L^{i} = L^{i-1} \cap L

闭包  L^{*}

正闭包 L^{+}

 

优先级: *  >  连接运算

 

正规式(正则表达式,regular expression):正规集

·最多有一个1 的01 串?最多有三个1 的01 串?

(00|11|((01|10)(00|11)*(01|10)))*

 

Pascal:

letter -> A|B|C|......|Z|a|b|c|......|z

digit = 0|1|2|3|.....|9

id -> letter(letter|digit)*

 

C:

letter_ -> A|B|C|......|Z|a|b|c|......|z| _

digit = 0|1|2|3|.....|9

id -> letter_ (letter_ | digit)*

 

词法记号的匹配:

分状态,走流程

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值