网站大量收购独家精品文档,联系QQ:2885784924

计算机编与译chapt5 .ppt

  1. 1、本文档共126页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机编与译chapt5

第五章 词法分析与语法分析 第一节 词法分析 一. 词法分析的功能 1. 功能 扫描源程序的字符串,按照词法规则,识别出单词符号作为输出;对识别过程中发现的词法错误,则输出有关的错误信息。 2. 词法分析器和语法分析器的关系 (1)词法分析作为单独的一遍 (2)词法分析作为子程序 二. 单词的种类 (1)标识符:用来命名程序中出现的变量、数组、函数、过程、标号等 (2)基本字:也可称关键字或保留字, 如if、while、for、do、goto等 (3)常数:各种类型的常数, 如216、3.14159、TRUE等 (4)运算符:如+、-、*、/等 (5)界符:如;、:、/*、*/等 三.单词的编码 1. 单词的输出形式——二元式 (单词类别,单词的属性) 2. 单词类别的划分 基本字、运算符、界符:一字一码 标识符:单列一种 常数:按类型分类 四. 词法错误检查 非法字符 不合规则的常数 标识符前缀为保留字 五. 词法分析器的生成 1. 词法分析技术——超前搜索 为了判定一个单词符号的类别,必须扫描到某一地方,而该单词符号并没有这么长,这种扫描方式叫做“超前搜索”。 如:DO100I=1,10 DO100I=1.10 IF(5.EQ.M)GOTO 100 IF(5)=100 2. 状态转换图 有限的有向图 有限边上标记字符 一个初态 若干终态 例: 某语言允许 标识符、基本字、数字串、 +、-、*、**、、=、、 =、、=、:=、:、; 3. 实现方法 每个状态结对应一小段程序 分支状态——if或case语句 循环状态——while语句 终态——return语句 4.一个示意算法 全局量及过程: (1)token (2)character (3)getchar (4)getnb (5)concatenate (6)letter和digit (7)reserve (8)retract:退一字符;character置空 (9)buildlist:为标识符登记符号表 第二节 自顶向下语法分析 语法分析: 自上而下(自顶而下) 自下而上(自底而上) 自顶向下语法分析法:或从开始符号出发,找最左推导;或从根开始,构造推导树。 一. 回溯分析法 1.一个实例 S→xAy A→ab│a 输入串为xay,说明分析过程 2.存在的问题 (1)回溯——公共左因子的存在 A→??1| ??2 (2)左递归 A→Aα 或 A?Aα 二. 无回溯的递归下降分析法 1. 提取公共左因子 A→??1| ??2| ... |??n| δ 改写为:A→αB|δ B→ ?1| ?2| ... |?n 2.左递归的消除 (1)直接左递归的消除 P→Pα│β 改写为:P→?P'  P'→αP'│ε 一般地 A→A?1|A?2|…|A?m|?1|?2|…|?n  (?i?ε,?j不以A开头) 改写为:P→?1P’│ ?2P’│. . .│ ?nP’ P’ →?1P’│?2P’│. . .│?mP’│ε (2)间接左递归的消除 P?Pα (a)将文法G的所有非终结符按任一给定的顺序排列,设为A1,A2,…An; (b)消除可能的左递归; for i:=1 to n do begin for j:=1 to i-1 do 把一个形如Ai?Aj?的产生式改写为 Ai??1?|?2?|…|?k? 其中Aj??1|?2|…|?k是Aj的所有产生式; 消除Ai产生式的直接左递归 end (c)化简 以 S→Qc│c Q→Rb│b R→Sa│a 为例,按S,Q,R排列,或R,Q,S排列 按S、Q、R排列, 代入后 S→Qc│c Q→Rb│b R→ Rbca│bca│ca│a 消除R中的直接左递归 R→ bcaR’│caR’│aR’ R’→ bcaR’│? 文法产生的语言

文档评论(0)

ctuorn0371 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档