[工学]第四章词法分析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文档。上传文档
查看更多
[工学]第四章词法分析1

第四章:词法分析 第四章 词法分析 词法分析是编译过程的第一步,其主要任务是对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。因此,词法分析是编译的基础。执行词法分析是编译的基础。 词法分析:根据词法规则识别及组合单词,进行词法检查。 对数字常数完成数字字符串到(二进制)数值的转换。 删去空格字符和注解。 4.1 词法分析程序的设计 任务 执行词法分析的程序称为词法分析器. 词法分析器的功能是输入源程序,输出单词符号. 单词符号是一个程序语言的基本符号。 4.1.2词法分析程序的输出 程序语言的单词符号一般分为五种: 关键字: 由程序语言定义的具有固定意义的标识符。有时称这些标识符为保留字或基本字。例如,Pascal中的begin,end,if,while等。 标识符:用来表示各种名字,如:变量名,数组名等. 常数: 整型,实型,布尔型等. 运算符: + - * / 等. 界符:逗号,分号,括号,/*, */等. 一个程序语言的关键字,运算符,界符都是确定的,一般只有几十或上百个,而对标识符和常数的使用都不加什么限制. 单词符号的表示 单词符号常常表示成如下二元式: (单词种别, 单词符号的属性值) 单词种别可用以下形式表示: 单词种别通常用整数编码. 一个语言的单词符号如何分种,分成几种,怎样编码,是一个技术性的问题。它主要取决于处理上的方便。 标识符一般统归一种。常数则宜按类型分种。关键字可将其全体视为一种,也可以一字一种。运算符可采用一符一种的分法,但也可以把具有一定共性的运算符视为一种。至于界符一般用一符一种的分法。 一类单词统一用一个整数值代表其属性.如 1 代表保留字,2 代表标识符等. 每一个单词一个类别.如 1 代表BEGIN,2 代表END等. 如果一个种别只含一个单词符号,那么,对于这个单词符号,种别编码就完全代表它自身了。若一个种别含有多个单词符号,那么,对于它的每个单词符号,除了给出种别编码之外,还应给出有关单词符号的属性信息。 属性值: 单词符号的属性是指单词符号的特性或特征.属性值则是反应特性或特征的值. 例如,对于某个标识符,常将存放它的有关信息的符号表项的指针作为其属性值;对于某个常数,则将存放它的常数表项的指针作为其属性值。 在本书中,假定关键字、运算符和界符都是一符一种。对于它们词法分析器只给出某种别编码,不给出它自身的值。标识符单列一种。常数按类型分种类。 考虑下述C++代码段:while (i=j) i--; 经词法分析器处理后,它将被转换为如下的单词符号序列: while, - (,- id,指向i的符号表项的指针 =,- id,指向j的符号表项的指针 ),- id,指向i的符号表项的指针 --,- ;,- 词法分析程序的实现方案 词法分析器的设计 输入、预处理 1.输入缓冲区:词法分析器工作的第一步是输入源程序文本。输入串一般是放在一个缓冲区中,这个缓冲区称为输入缓冲区。 2.预处理:就是将程序语言中的空白符、跳格符、回车符、换行符和注解等编辑性字符剔掉。 3.预处理子程序:就是用来完成编译的预处理。 4.分析器:分析器对扫描缓冲区进行扫描时一般用两个指示器,一个指向当前正在识别的单词的开始位置,另一个用于向前有哪些信誉好的足球投注网站以寻找单词的终点。不论扫描缓冲区设得多大都不能保证单词符号不会被它的边界所打断。因此,扫描缓冲区最好使用一个如下所示的一分为二的区域: 起点指示器 有哪些信誉好的足球投注网站指示器 这意味着对标识符和常数的长度实际上必须加以限制,否则,即使缓冲区再大也无济于事。 词法分析器的工作方式 单词符号的识别:超前有哪些信誉好的足球投注网站 在某些语言中,要识别一个单词符号必须超前看若干字符,直到能区别开这些单词为止,常应用在如下几个方面: 关键字的识别; 标识符的识别; 常数的识别; 算符和界符的识别; 例:关键字的识别 在FORTRAN语言中,关键字和用户自定义的标示符或标号之间没有特殊的界符作间隔,所以识别比较麻烦,看如下例子: 1 DO99K=1,10 2 IF(5.EQ.M) I=10 3 DO99K=1.10 4 IF(5)=55 语句1、3的区别在于等号之后的第一个界符:一个为逗点,另一个为句末符。所以一直有哪些信誉好的足球投注网站到这里 才能区分开1句是DO语句,3语句是赋值句。 语句2、4主要区别在于右括号之后的第一个字符:一个为字母,另一个为等号。所以也只能有哪些信誉好的足球投注网站到该字符才能得到语句2是IF语句,语句4是赋值句。 4.2单词的描述工具 程序设计语言中的单词是基本语法符号。单词符号的语法可以用有

文档评论(0)

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

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

1亿VIP精品文档

相关文档