- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理 教师: 蒋 平 电话: E-mail: general515@ 第一章 引论 1.1 编译程序概念 程序语言分为两类: a.高级语言 C,C++,PASCAL,JAVA,BASIC b.低级语言 低级语言可分为两类 a.机器语言:以二进制形式存在,计算机可以 直接执行的语言; b.汇编语言:采用一些助记符号表示机器语言 中的指令和数据,使机器语言 符号化; 编译:将高级程序设计语言翻译加工成机器语言或汇编语言的过程; 编译程序:能够实现编译功能的程序。 1.2 编译过程概述 1)识别出句子中的一个个单词; 2)分析句子的语法结构; 3)根据句子的含义进行初步翻译; 4)对译文进行修饰; 5)写出最后的译文; 例1 将如下英语翻译成汉语 She is a pretty girl. 1、词法分析; 2、语法分析; 3、中间代码生成; 4、代码优化; 5、目标代码生成; 例2 将如下程序翻译成计算机语言. if (a1) {b=2;} 词法分析:识别原程序中的一个个单词; 例2中的‘if’,’(’,’a’,’’,’1’,’)’,’{‘,’b’,’=‘,’2’,’;’,’}’. 2)语法分析:把一个个单词按语法规则分解 成语法单位,例如”句子”、“短语”等; 例3: x=a+b 是一个赋值语句 a+b 是一个算数表达式 3)中间代码生成:对语法分析所识别出的各类语法单位,分析其含义并进行初步翻译(生成中间代码); 中间代码是一种独立于硬件的记号系统,常用的有四元式、三元式、间接三元式、逆波兰式和树形表示等。 四元式表示方式 运算符 左操作数 右操作数 结果 序号 运算符 左操作数 右操作数 结果 (1) + a b T1 (2) = T1 x 四元式表示例3中的x=a+b 4)代码优化:对前段产生的中间代码进行加工变换,以期产生更为高效(省时省空间)的目标代码。 例4: for(k=1;k=100;k++) {m=i+10*k;} 序号 运算符 左操 作数 右操 作数 结果 (1) = 1 k (2) j 100 k (7) (3) * 10 k T1 (4) + i T1 m (5) + k 1 k (6) j (2) (7) 序号 运算符 左操 作数 右操 作数 结果 (1) = i m (2) = 1 k k (3) j 100 k (7) (4) + m 10 m (5) + k 1 k (6) j (3) (7) 代码一 代码二 5)目标代码生成:把中间代码(或优化处理后)变换成特定机器上的低级语言代码。 1.3 编译程序的结构 编译程序总框 人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。 * *
文档评论(0)