大话编译原理---上篇

大话编译原理---上篇

前序
       记得第一次上编译原理这门课时,老师曾慷慨激昂的说:“学好编译原理能让你们享用一生,你们要好好学啊”。不过学完编译原理也有一段时间了,平时也找一些编译原理方面的资料学习,却始终感受不到学习编译原理的效用。究其原因还是自己学的太单薄了,毕竟像这种“内功”可不是一天两天就能练出来的!只是感觉这门课挺有意思,权当一门兴趣来学了。

正文
       本文将介绍六大节的内容,其中每个部分又分为若干小节,如下图描述:


第一节 编译程序概览

       1.编译程序的定义:将高级语言编写的源程序翻译成目标语言的程序。
       例如用Pascal语言、C语言、C++语言等编写的程序,都是高级语言程序。而这些程序不能直接被计算机理解和执行,必须经过等价的转换,变成机器能理解与执行的机器语言才能执行。

       2.编译程序的过程:词法分析、语法分析、语义分析与中间代码生成、代码优化、目标代码生成。
             ①.词法分析:直白的说,就是识别单词。如关键字、标示符、常数、特殊符号。
             ②.语法分析:在词法分析的基础上将单词序列组合成各类语法短语。如语句、表达式等等。
             ③.语义分析和中间代码生成
             语义分析是对源程序进行上下文有关性质的检查,看源程序有无语义错误。例如:变量是否定义、类型是否正确。
             中间代码:含义明确、便于处理的记号系统。这种记号系统于源程序和机器语言之间,容易将它翻译成目标代码。如三元式、四元式、逆波兰式等。
             ④.代码优化:对程序代码进行等价(不改变程序的运行结果)变换。优化的目的是使最终生成的目标代码在时间和空间上效率更高。
             ⑤.目标代码生成:指把语法分析后或优化后的中间代码变换成目标代码。目标代码有三种形式:
               ⑴.可以立即执行的机器语言代码,所有地址都重定位;
               ⑵.待装配的机器语言模块,当需要执行时,由连接装入程序把它们和某些运行程序连接起来,转换成能执行的机器语言代码;
               ⑶.汇编语言代码,须经过汇编程序汇编后,成为可执行的机器语言代码。
  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值