第02章 pl0编译程序 [兼容模式].pdf

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Compilers:Principles and Techniques ChapterChapter 22 PL/0PL/0 compilercompiler SpringSpring li weihua Depaeparttmeentt oof CoComputeputer ScScieencece tectechnoology,ogy, Informational school, Yunnan University Chappter 2 PL/0 编译系统编译系统 PL/0PL/0 编译系统组成编译系统组成 PL/0PL/0 编译程序编译程序 类P-code 虚拟机 PL/0编译系译系统 PL/0PL/0 程序程序 PL/0 编译程序 类P-code程序 类P-code 输入数据输入数据 解解释程序序 输出数据输出数据 类类PP-codecode 虚拟机虚拟机 PL/0编译系统编译系统 PL/0PL/0 语言简介语言简介 PL/0 编译程序的词法分析 PL/0 编译程序的语法分析 PL/0 编译程序的语义分析和符号表编译程序的语义分析和符号表 PL/0PL/0 编译程序运行时的存储管理编译程序运行时的存储管理 PL/0 编译程序的目标代码生成 PL/0 编译程序的错误处理 类类PP--codecode 虚拟机虚拟机 PL/0 语言简介 PL/0PL/0 语言语言为为PPascall 语言的子集语言的子集 PL/0PL/0 程序示例程序示例 PL/0 语言的语法描述图 PL/0 语言的EBNF表示 PL/0PL/0 语言的语义规则语言的语义规则 PL/0 语言的EBNF表示 EBNFEBNF 的元符号的元符号 − ‘ ’ 是用左右尖括号括起来的中文字表示语法构 造造 成分,或称语法单位 ,为非终结符。 − ‘::=’ 该符号的左部由右部定义,可读作‘定义为’ − ‘|’ 表示‘或’,即左部可由多个右部定义 − ‘{ }’ 表示花括号内的语法成分可以重复 ;在不加上 下界时可重复0到任意次数,有上下界时为可重复次 数的限制 − ‘[[ ]]’ 表示方括号内的成分为表示方括号内的成分为任选任选项项 − ‘( )’ 表示圆括号内的成分优先 PL/0 语言的EBNF表示 例:PL/0 语言的EBNF表示片断 程序 ::= 分程序. 分程序 ::= [[常量说明说明部分]] [[变变量说明说明部分]] [过程说明部分] 语句 常量说明部分 ::= CONST 常量定义 { ,常量定义 } ; 常量定义 ::= 标识符 = 无符号整数 无符号整数 ::= 数字 {数字} 变量说明部分 ::= VAR 标识符 { , 标识符 } ; 标识符标识符 ::= 字母字母 {{字母字母||数字数字}} 过程说明部分 ::= 过程首部分程序{; 过程说明部分 }; 过程首部过程首部 ::::= PROCEDUREPROCEDURE 标识符标识符 ;; …… PL/0 语言的语义规则 类型、上下文约束与作用域规则 −数据类型只有整数类型 − 数据结构只支持数据结构只支持简单变量简单变量和和常数常数 − 所支持的数字为最长9 位的十进制数 − 标识符的有效长度为10 − 标识符引用前先要声明 − 过程无参数 − 过程可嵌套过程可嵌套 ,最多嵌

文档评论(0)

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

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

1亿VIP精品文档

相关文档