CHPL编译程序.pptVIP

  • 8
  • 0
  • 约1.32万字
  • 约 92页
  • 2017-02-04 发布于江苏
  • 举报
第二章 编译程序的实现 第二章 PL/0编译程序的实现 第二章 编译程序的实现 一、PL/0编译程序的词法分析 二、PL/0编译程序的语法分析 三、PL/0编译程序的伪代码生成 一、PL/0编译程序的词法分析 1、基本思想 2、PL/0程序设计语言的词法规则 3、完成的任务 4、PL/0词法分析程序的设计 5、词法分析程序的输入和输出 6、实验要求 采用直接分析法,根据读入的第一个字符的种类,分别转入到相应的程序段去处理,从而最终把单词识别出来。 标识符::= 字母{字母| 数字} 无符号整数 ::= 数字{数字} 字母 ::= A|B|…|X|Y|Z 数字::=0|1|…8|9 保留字::= BEGIN|CALL|CONST|DO|END|IF|ODD |PROCEDURE|PROGRAM|READ|THEN|VAR |WHILE|WRITE 界符 ::= +|-|*|/|(|)|=|,|.|;|=||=||# (1)滤空格; (2)识别保留字; (3)识别标识符; (4)识别常量; (5)识别界符; CH:当前符号; ID:当前标识符的单词自身值; SYM:当前单词的类别值; NUM:当前常量的单词自身值; WORD:保留字表; WSYM:保留字的单词类别值表; SSYM:界符的类别值; 输入:PL/0源程序(保存在一个文本文件中) 输出:单词类别值、单词自身值组成的二元组(保存在一个文本文件中) PL/0源程序: PROGRAM main; CONST a=10,e=5; VAR f,g; (PROGRAM PROGSYM) (main IDENT) (; SEMICOLON) (CONST CONSTSYM) (a IDENT) (= EQL) (10 NUMBER) (, COMMA) (e IDENT) (= EQL) (5 NUMBER) (; SEMICOLON) (VAR VARSYM) (f IDENT) (, COMMA) (g IDENT) (; SEMICOLON) BEGIN g:=a+e; f:=g; WRITE(g) END. (BEGIN BEGINSYM) (g IDENT) (:= BECOMES) (a IDENT) (+ PLUS) (e IDENT) (; SEMICOLON) (f IDENT) (:=

文档评论(0)

1亿VIP精品文档

相关文档