北大编译原理chapter1.pptVIP

  • 12
  • 0
  • 约1.78千字
  • 约 17页
  • 2017-09-22 发布于广东
  • 举报
1 1 源程序 PROGRAM m; VAR a,b,c:real; BEGIN read(b,c); a:=b+c*60; write(a) END. 经词法分析源程序被加工成单词流 保留字,PROGRAM 标识符,m 分隔符, ; 保留字,VAR 标识符,a 标识符,b 标识符,c 分隔符, : 标识符, real 分隔符, ; 保留字, BEGIN …... 标识符,a 算符 , := 标识符,b 算符, + 标识符,c 算符,* 常数 ,60…… 保留字, END 分隔符, . 生成中间代码 temp1:=inttoreal(60); temp2:=c * temp1; temp3:=b +temp2; a :=temp3; 符号表 错误的诊查处理 编译程序在各个阶段应诊断和报告源程序中的错误,包括词法错误,语法错误,语义错误。 编译程序应报告出错地点,并给出简明准确的提示信息。 编译程序(器)的组织 前端和后端 源程序 中间代码 目标代码 仅依赖源程序 仅依赖目标计算机 遍(PASS): 对输入文件(源程序或其等价的中间形式)从头到尾扫视,完成预定的处理。 设计编译程序应首先研究的问题 首先研究源程序的语法和语义及运行模型,源是设计编译程序的出发点。 研究目标计算机,设计目标代码的指令系统,它是由目标计算机扩充而成,扩充后的计算机称作抽象计算机。目前的通用计算机往往和源语言执行模型不一致。。 教和学的几个问题 重要性:处理字符串的一般方法;构造大程序的方法;实用;研究课题:新的语言及实现技术;并行编译技术。 学习方法 :(1)源程序是源泉;(2)把每个阶段放到整个编译程序背景中学习;(3)认真做作业。 每周有一次答疑。 参与网上教材的修改与创新。 教材和参考书 教材: (1)编译程序设计原理 北京大学出版社,杜淑敏等编著。 (2)网络版(软件工程中心资助)。 * * 编译程序 目标程序 源程序 把高级语言程序翻译成等价的低级语言 程序。 编译系统:编译程序和运行程序 编译程序的功能 词 法 分 析 语 法 分 析 语 义 分 析 中间代码生成 优 化 目标代码生成 目标代码 源 程序 符 号 表 管 理 错 误 诊 查 处 理 3 编译程序的逻辑结构 赋值语句 变 量 : = 表达式 表达式 + 项 项 因子 b 项 * 因子 因子 c 60 a 赋值语句经语法分析生成分析树 := a + b * c inttoreal 60 赋值语句经语义分析生成语法树 优 化 Temp1 :=c * 60.0 a := b+temp1 生成目标代码 movf c , r2 ; mulf #60.0 , r2 ; movf b , r1 ; addf r2 , r1 ; movf r1 , a ; 遍 输入文件 输出文件 前端 后端 词法 分析 语法分析 语义分析和 中间代码生成 源程序 中间代码 符 号 表 管 理 错 误 的 诊 查 处 理 把前端组织成一遍扫描 编译程序 源程序 目标程序 抽 象 目标 * * * *

文档评论(0)

1亿VIP精品文档

相关文档