广工编译原理Chapter2老师自己做.pptVIP

  • 0
  • 0
  • 约1.13千字
  • 约 89页
  • 2020-11-19 发布于福建
  • 举报
第2章PL/0编译程序 21PL/语言和类pode的描述 22PL0编译程序的结构 23PLA0编译程序的语法语义分析 24PL0编译程序的错误处理 25类 pcode代码解释器 本章目的:以PL/0为实例,学习编译程序实现的 基本步骤和相关技术 PL/0编译程序 PL语言程序一PL/0编译程序一类 pcode代码 源语言(PL/0 PL/O 类 pcode 日标语言(类 pcode) C/pascal 实现语言(C/ pasca) PL/0编译系统的结构框架 PL0源程序 PL/0编译程序 类 pcode代码 类 pcode解释程序 输入 输出 PL/0语言 9PL/0程序示例 8PL/0的语法描述图 8PL/0语言文法的EBN表示 8PL/0语言: PASCAL语言的子集 CONST A=10;(*常量说明部分* VARB,C;(*变量说明部分* PROCEDURE P;(*过程说明部分* PL/0程序 VAR D 示例 PROCEDURE Q VAR X. BEGIN READ (X) D: =X WHILE X#0D0}Q的过程体 CALL P END BEGIN WRITE (D) CALL Q P的过程体 END BEGIN CALL P 主程序体 END PL/0语言是 PASCAL语言的子集 同PAS0AL 作用域规则(内层可引用包围它的外层定义的 标识符),过程可嵌套定义,可递归调用 子集 8数据类型,只有整型 8数据结构,只有简变和常数 8数字最多为14位 标识符的有效长度是10 语句种类 3过程最多可嵌套三层 程序—分程序 匚内的文字表示非终结符 或○内的文字或符号表示终结符 分程序--( const( ident)+(= number var ident procedure ient(分程序 语句 PL/0语言文法的EN表示 EBNF引入的符号(元符号) 用左右尖括号括起来的语法成分为非终结符 =(→)“定义为’∷=(→)的左部由右部定义 或 }表示花括号内的语法成分可重复任意次或限 定次数 []表示方括号内的语法成分为任选项 ()表示圆括号内的成分优先 例:用EBNF描述PL/0的定义 程序∷=分程序 分程序∷=[常量说明部分[变量说明 部分为[过程说明部分]语句 常量说明部分∷= CONST常量定义〉 ,常量定义 常量定义∷=标识符〉=无符号整数〉

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档