第1章编译概述(20090302).ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理 为什么要学习编译原理 必修主干课程,操作系统和编译系统构成程序设计者与计算机之间的基本界面。 通过学习该课程,掌握编译的基本理论、常用的编译技术,了解编译过程及编译系统结构和机理。能运用所学技术解决实际问题,能独立编写一个小型编译系统。 此外,通过学习编译原理可以更好地理解程序语言的内部机制,从而更好地理解和运用程序设计语言。能运用编译程序构造的原理和技术完成相关软件工具的设计和开发工作。 为什么要学习编译原理 计算机软件学科理论与实践相结合的典范。 在学习过程中既要注重该领域在理论上取得的完美结论,也要注重这些理论在实际中的应用。 课程内容 第一章编译概述 所谓编译过程是指将高级语言程序翻译为等价的目标程序的过程。 翻译和编译工作的比较 例: 一个简要的Pascal 程序 Program examplel; {used for illustrating compiling process} Var a,b,c:integer; x:integer; Begin a:=a+b*c+b*c; x:=a*3-b*c; b:=a+)b*(x- end 上述源程序通过词法分析识别出如下单词符号: 基本字:program, var, integer,begin, end 标识符:examplel,a,b,c,x 常数: 3 运算符:+,*,- 界符: ( ) ; { } : = 长度上统一的标准形式——TOKEN串 TOKEN串是一个二元组:(单词类别,单词的值) 其中:“单词的类别”用既已存在的一组整数值(称为单词的种别 码)表示。用以区分不同种类的单词。 “单词的值”是单词的机内表示形式。一般是ASCII码。 通过语法分析,识别出: a,b,x 是变量这个语法单位; a+b*c+b*c组合成表达式这样的语法单位; 识别出赋值语句这样的语法单位由变量:=表达式构成; 并能指出赋值语句b:=a+)b*(x-的语法错误。 具体说来语义分析包括两方面: (1)静态语义检查。要检查标识符是否被定义,前后的数据类型是否一致。如上述源程序中x:=a*3-b*c,要查看赋值号左右的变量和表达式的类型是否一致。 (2)进行语义处理。针对不同类型的语句语义处理的方式不同。对说明语句,要将说明性语句中所定义的变量名字及其有关信息送进符号表,并为之分配存储单元;对可执行语句(如赋值语句、条件语句、循环语句等),就要生成可表达语义的中间代码。 分析到说明语句var a,b,c:integer;后,应把变量a,b,c的类型integer填入符号表中,分析到 end后,将产生以下四元式序列: 运算符 左运算对象 右运算对象 工作单元 注释 (1) * b c T1 b*c?T1 (2) + a T1 T2 a+T1?T2 (3) * b c T3 b*c?T3 (4) + T2 T3 T4 a+b*c+b*c?T4 (5) := T4 _ a T4?a (6) * a 3 T5 a*3?T5 (7) * b c T6 b*c?T6 (8) _ T5 T6 T7 a*3-b*c?T7 (9) := T7 _ x T7?x 语义翻译工作通常穿插在语法分析过程当中,因而语义翻译程序是由一组语法子程序构成的。 上述四元式经优化得: (1)(*,b, c, T1) (2)(+, a, T1,T2) (3)(+, T1,T2,T4) (4)(:=,T4,_, a ) (5)(*, a, 3, T5) (6)(_, T5,T1,T7) (7)(:=,T7,_, x ) 编译程序所产生的目标代码质量的高低,主要取决于这一阶段里代码优化程序功能的强弱。 1.3 编译程序的生成方法 1.对源语言和目标语言认真分析 (1)要熟悉源语言,要正确理解它的语法和语义; (2)要搞清楚目标语言和目标

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档