中国农业大学《编译原理》课件-第1-2章引论.pptVIP

中国农业大学《编译原理》课件-第1-2章引论.ppt

  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文档。上传文档
查看更多
大学,本科,专科,硕士,笔记,课件,期中试卷答案,期末试卷答案,教材答案,知识点,经济法,材料科学基础,材料力学,电路,电子技术基础,高频电子线路,宏观经济学,模拟电路基础,模拟电子技术,数字电路,数字电子技术,数字信号处理,通信原理,信号与系统,化工原理,机械设计基础,机械原理,机械制图,微机原理与接口技术,C++程序设计,JAVA技术与应用,MATLAB基础与应用,计算机网络,计算机组成原理,软件工程数据结构,工程力学,工程热力学,结构力学,力学,流体力学,水力学,工程测量,工程经济学,工程

PL/0程序示例 CONST A=10; (* 常量说明部分 *) VAR B,C; (* 变量说明部分 *) PROCEDURE P; (* 过程说明部分 *) VAR D; PROCEDURE Q; VAR X; BEGIN READ(X); D:=X; WHILE X#0 DO CALL P; END; BEGIN WRITE(D); CALL Q; END; BEGIN CALL P; END. Q的过程体 p的过程体 主程序体 程序 分程序 . 内的文字表示非终结符 或 内的文字或符号表示终结符 2.1.1 PL/0语言的语法描述图 语法描述图 下页 分程序 Const ident number = , ; Var ident procedure ident 分程序 ; 语句 , ; ; 语句 ident := call ident ; 表达式 . begin 语句 语句 end 条件 语句 if then 条件 语句 While do ( ) read ident ( ) write , , 表达式 条件 表达式 表达式 表达式 odd . = # = = + - 表达式 项 项 . + - ident number 表达式 因子 . ( ) * 因子 项 因子 / . 1、EBNF表示的符号说明 :是非终结符 →:左部由右部定义 | :表示‘或’ { }:表示为可以重复部分 [ ]:表示为任选项 ( ):表示成分优先 2.1.2 PL/0语言文法的EBNF表示 2、PL/0 语言文法的EBNF表示为: 程序→分程序● 分程序→[常量说明部分][变量说明部分][过程说明部分]语句 常量说明部分→CONST常量定义 {,常量定义} 常量定义→标识符=无符号整数 无符号整数→数字{数字} 变量说明部分→VAR标识符{,标识符} 标识符→字母{字母|数字} 过程说明部分→过程首部分程序{;过程说明部分} 过程首部→procedure标识符 语句→赋值语句|条件语句|当型循环语句|过程调用语句|读语句|写语句|复合语句|空 赋值语句→标识符:=表达式 复合语句→begin语句{;语句}end 条件→表达式关系运算符表达式|odd表达式 表达式→[+|—]项{加法运算符项} 项→因子{乘法运算符因子} 因子→标识符|无符号整数| ‘(’ 表达式‘)’ 加法运算符→ + | - 乘法运算符→ * | / 关系运算符→!= | | ≤| ≥| | = 条件语句→ If条件then语句 过程调用语句→ Call标识符 当型循环语句→While条件DO语句 读语句→Read’(’标识符{,标识符} ’)’ 写语句→Write’(’表达式{,表达式} ’)’ 字母→a|b|…| X|Y|Z 数字→0|1|2|…|8|9 3、PL/0编译程序是用PASCAL语言编写,可在任何配有PASCAL编译系统的计算机上运行。如下图: PL/0 Compiler 源文本 PASCAL Compiler PL/0 Compiler 目标文本 PL/0 源程序 PL/0 Compiler 目标文本 PL/0 目标程序 词法分析程序 语法语义分析程序 代码生成程序 表格管理程序 出错处理程序 PL/0源程序 目标程序 2.2 PL/0编译程序的结构 PL/0编译程序的总体设计 其编译过程采用一趟扫描方式 以语法、语义分析程序为核心 词法分析程序和代码生成程序都作为一个过程,当语法分析需要读单词时就调用词法分析程序,而当语法、语义分析正确,需要生成相应的目标代码时,则调用代码生成程序。 表格管理程序实现变量,常量和过程标识符的信息的登录与查找。 出错处理程序,对词法和语法、语义分析遇到的错误给出在源程序中出错的位置和与错误 性质有关的编号,并进行错误恢复。 2.3 PL/0编译程序的词法分析 识别的单词: 保留字或关键字:如:BEGIN、 END、 IF、 THEN等 运算符: 如:+、-、*、/、:=、#、=、=等 标识符: 用户定义的变量名、常数名、过程名 常数: 如:10、25、100等整数 界符: 如:‘,’、‘.’ 、‘;’ 、‘(’ 、‘)’等 §1.1 什么是编译程序

文档评论(0)

翰林大当家 + 关注
实名认证
服务提供商

文案个性定制,计划书、方案、策划书专业撰写。

1亿VIP精品文档

相关文档