- 1、本文档共60页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)