第二章PL0编译的实现探索.ppt

PL/0语言的编译程序是用高级语言PASCAL语言编写的。程序由嵌套、过程和函数构成,采用一趟扫描方法。采用自顶向下的递归子程序法。所产生的目标程序为假想栈式计算机的汇编语言。 PL/0语言编译程序是适合教学用的,它的数据类型只有整形数,数据运算只有四则运算。语句有赋值语句、条件语句、WHILE循环语句、输出、输入语句和不带参数允许递归调用的过程语句及复合语句。 第二章 PL/0编译程序的实现 2.1.1 PL/0语言的语法描述图 下面借用语法图来描述语法规则。其中: 英文表示终结符,中文表示非终结符。 终结符:构成语言文法的单词,是语法成分 的最小单位。 非终结符:是个语法成分,还没有进行分析。 程序 2.1 PL/0 语言描述 分程序 语句 条件: 表达式 项 因子: 2.12 PL/0 语言文法的EBNF表示 EBNF:扩充的巴科斯-瑙尔范式,是对文法的一种描述形式。其符号说明如下: :括号的中文表示语法成分,为非终结符 = :表示定义为 | :表示“或”关系 { } :括号内的语法成分可以重复 [ ] :括号内的成分为任选项 ( ) : 括号内的成分优先 2.2 PL/0编译程序的结构 编译过程采用一遍扫描方式。以语法分析程序为核心。 词法分析程序 语法分析程序 代码生成程序 表格

文档评论(0)

1亿VIP精品文档

相关文档