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

识别出每一个单词。

源代码  --  词法分析器   --  记号流(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)*

词法记号的匹配:

分状态,走流程

猜你喜欢

转载自blog.csdn.net/what_wrong/article/details/82490648