第2章 词法分析(1).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
上 节 回 顾 编译和解释的本质区别是什么? 简述编译程序的过程及各个过程的功能。 第二章 词法分析 一、对词法分析器的要求 二、词法分析器的设计 三、正规表达式与有限自动机 词法分析和语法分析的关系 主要任务:读源程序(字符流),产生单词符号(词标流) 其它任务:滤掉空格、跳过注释和换行符、宏展开等 地位:是编译的基础 描述:正规表达式 识别:有限自动机 一、 对于词法分析器的要求 词法分析器的功能和输出形式 功能:输入源程序,输出单词符号(是程序语言 的基本语法符号) 单词符号的种类: 关键字:如if, else, while , for 标识符:用来表示各种名字,如变量名、数组名、过程名 常数:整型、实型、布尔型、文字型等。 运算符:+、—、×、/ 等 界符:如逗号、分号、括号等 例:对C++代码段: while (ij) i- -; 处理后,转换为如下序列: while, - (, - id, 指向i的符号表项的指针 , - id,指向j的符号表项的指针 ), - id,指向i的符号表项的指针 - -, - ; , - 将词法分析工作从语法分析中分离出来的原因 使整个编译程序的结构更简洁、清晰 和条理化; 编译程序的效率会改进 ; 词法分析器作为一个独立子程序 当语法分析器需要一个单词符号时就调用这个子程序。每一次调用,词法分析器就从输入串中识别出一个单词符号,把它交给语法分析器. 二、 词法分析器的设计 输入、预处理 输入串放在一个缓冲区中(即输入缓冲区),词法分析可以直接在此进行。 预处理的任务 某些语言中,将除出现在文字常数中外的空白符、跳格符、回车符等编辑性字符剔掉 某些语言把空白符用作界符(即用作单词符号间的间隔),此时,将若干个空白结合成一个 状态转换图 一张有限方向图,结点代表状态,状态间用箭头连接。 例 介绍基本术语和概念 符号 字母表 符号串 符号串的连接 符号串的方幂 符号串的集合 符号 符号:一个抽象实体,我们不再形式地定义它(就象几何中的“点”一样)。 例如字母是符号,数字也是符号。 字母表 字母表是元素的非空有穷集合,我们把字母表中的元素称为符号,因此字母表也称为符号集。 不同的语言可以有不同的字母表,例如汉语的字母表中包括汉字、数字及标点符号等。PASCAL语言的字母表是由字母、数字、若干专用符号及BEGIN、IF之类的保留字组成。 符号串(string) 符号串 :由字母表中的符号组成的任何有穷序列称为符号串。 例如00 11 10 是字母表Σ={0,1}上的符号串。 字母表A={a,b,c}上的一些符号串有:a,b,c,ab,aaca。 在符号串中,符号的顺序是很重要的,例如符号串ab就不同于ba,abca和aabc也不同。 如果某符号串x中有m个符号,则称其长度为m,表示为|x|=m,如001110的长度是6。 允许空符号串,即不包含任何符号的符号串,用ε表示,其长度为0,即|ε|=0。   下面介绍有关符号串的一些运算。   - 符号串的连接   - 符号串的方幂   - 符号串集合 符号串的连接 符号串的连接:设x和y是符号串,它们的连接xy是把y的符号写在x的符号之后得到的符号串. 由于ε的含义,显然有εx=xε=x。 例如设x=ST,y=abu,则它们的连接xy=STabu,看出|x|=2,|y|=3,|xy|=5。 符号串的方幂 符号串的方幂:设x是符号串,把x自身连接n次得到符号串z,即z=xx…xx,称为符号串x的n次方幂,写作z=xn ,也即把符号串x相继地重复写n次。x0=ε,x1=x,x2=xx,x3=xxx分别对应于n=0,1,2和3。  例子:若x=AB 则:   x0 = ε   x1 = AB   x2 = ABAB   x3 = ABABAB   xn = xxn-1 = xn-1 x (n0) 正规式定义中的“|”读为“或”(也有使用“+”代替 “|” 的); “·”读为“连接”; “*”读为“闭包”(即,任意有限次的自重复连接)。 在不致混淆时,括号可省去,但规定算符的优先顺序为“(”、“)”、“*”、“·”、“|” 。连接符“·”一般可省略不写。“*”、“·”和“|” 都是左结合的。 例:令Σ={a, b} 正规式 正规集 a {a} a|b {a,b} ab

您可能关注的文档

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档