核心观点:
一个编译程序就是一个语言翻译程序。就是把一种语言书写的程序翻译成另一种语言(目标语言)的等价程序。


重要性:
一个编译程序的重要性体现在它使得多数计算机用户不必考虑与机器有关的繁琐细节,使程序员和程序设计专家独立于机器,这对于当今机器的数量和种类持续不断增长的年代尤为重要。


编译程序的功能:
高级语言程序(源程序) –> 编译程序 –> 低级语言程序(目标程序)


高级语言程序的处理过程:
学过计算机的人都知道,除了编译程序外,还需要一些其他程序才能生成一个可在计算机上执行的目标程序。

需预处理的源程序 –> (预处理程序) –> 源程序 –> (编译程序) –> 目标汇编语言程序 –> (汇编程序)–> 可再装配的机器代码 –> (装配/连接编辑程序)–> 绝对机器代码

上面是一个大体的流程图。简单介绍一下:
一个源程序可能分成几个模块存放在不同的文件里,将这些源程序汇集在一起的任务,由一个叫做预处理程序的程序来完成,有些预处理程序也负责宏展开,像C语言的预处理程序要完成文件合并、宏展开等任务。
编译程序生成的目标程序是汇编代码形式,需要经由汇编程序翻译成可再装配(或可重定位)的机器代码,再经由装配/连接编辑程序与某些库程序连接成真正能在机器上运行的代码。
也就是说,一个编译程序的输入可能要由一个或多个预处理程序来产生;另外,为得到能运行的机器代码,编译程序的输出可能仍需要进一步的处理。


源语言的种类成千上万,从常用的C、C++、Java等,到各种各样的计算机应用领域的专用语言。而目标语言也是种类繁多的,加上编译程序由于构造不同,所执行的具体功能有差异,又分成了各种类型,如一趟编译、多趟编译、具有调试或优化功能的编译等。
尽管存在这些明显的复杂因素,但是任何编译程序所执行的主要任务都是一致的,就是将源语言程序翻译成等价的目标语言程序。通过理解这些任务,使用同样的基本技术,可以为各种各样的源语言和目标语言设计和构造编译程序。

编译原理:什么是编译程序?相关推荐

  1. 0909 编译原理1

    通过上网查找资料后,我对编译原理这门课程有了一定的了解. 1.编译原理旨在介绍编译程序构造的一般原理和基本方法.内容包括语言和文法.词法分析.语法分析.语法制导翻译.中间代码生成.存储管理.代码优化和 ...

  2. 计算机编译原理有必要学吗,计算机程序编译原理学习心得

    计算机程序编译原理学习心得 <编译原理>是计算机专业的一门重要课程,正如教材:第一章的引论所述,"编译程序是现代计算机系统的基本组成部分之一"."一个编译程序 ...

  3. 编译原理上机实习c语言小子集编译程序的实现报告,编译原理上机实习指导书(2015-11修改).pdf...

    <编译原理上机实习>指导书 一.上机实习目的 理解编译程序的构造原理,掌握编译程序的构造方法与技术.通过实习,使学生既加深对 编译原理基础理论的理解,又提高动手能力,特别是提高软件设计能力 ...

  4. 编译原理(一)编译程序、解释程序、程序设计语言范型

    编译原理的地位 是软件技术的基础 是计算机专业的基础课程,是专业必修课 编译原理的作用 编译原理是介绍如何将高级语言程序变换成低级语言程序的方法. 其理论基础坚实,其形式化系统不仅用于编译程序,还大量 ...

  5. 编译原理及编译程序构造-绪论

    编译原理及编译程序构造(张莉) 1 绪论 编译:把高级程序语言翻译成汇编语言或机器语言: 计算机组成五部分:输入.输出.控制器.运算器.存储器 源程序:程序语言处理系统的输入程序: 目标程序:能在计算 ...

  6. 中山大学编译原理实验——实现PL0语言的编译程序(无坑有缩进版)

    PL0-Compiler 代码传送门 ps:吐槽一下,老师给的代码实在是太烂了.又没缩进又多编译错误,除此之外还有很多细节漏掉关键字,总之就很多坑,所以这里发一个无坑带缩进版,方便大家学习. 中山大学 ...

  7. (编译原理)实验四 扩展功能的PL/O编译程序

    一. 实验目的 为了更好的配合<编译原理>有关词法分析章节的教学 加深和巩固学生对于语法分析的了解和掌握 让学生进一步的认识PL/0语言的基础和简单的程序编写 使学生通过本实验能够扩大对p ...

  8. 【编译原理】解释程序与编译程序的主要区别

    [编译原理]解释程序与编译程序的主要区别 解释程序与编译程序的主要区别是: 编译程序将源程序翻译成目标程序后再执行该目标程序: 而解释程序则逐条读出源程序中的语句并解释执行,即在解释程序的执行过程中并 ...

  9. 编译原理上机实习c语言小子集编译程序的实现报告,合肥工业大学编译原理实验报告(完整代码版)...

    <合肥工业大学编译原理实验报告(完整代码版)>由会员分享,可在线阅读,更多相关<合肥工业大学编译原理实验报告(完整代码版)(58页珍藏版)>请在人人文库网上搜索. 1.计算机与 ...

  10. 编译原理:编译过程和编译程序的结构

    编译过程概述: 编译程序完成从源程序到目标程序的翻译工作,是一个复杂的整体的过程.从概念上来讲,一个编译程序的整个工作过程是划分成阶段进行的,每个阶段将源程序的一种表示形式转换成另一种表示形式,各个阶 ...

最新文章

  1. @available 和 #available
  2. I need to follow my heart.
  3. 一脸懵逼学习hadoop之HDFS的java客户端编写
  4. js-----第四篇
  5. 通过启动项设置实现应用程序自启动功能
  6. java新手笔记3 运算符循环
  7. ffmbc——广播电视以及专业用途量身定制的FFmpeg
  8. influxdb java api使用_java使用influxDB数据库的详细源码
  9. 翻车事故频发,原来是开发者漏了这一步!
  10. 奇安信专家:近八成软件存开源漏洞 供应链需全生命周期安全防护
  11. SSM框架-实现Mybatis分页功能-foreknow_cms
  12. 概率论与数理统计 重点篇
  13. iOS,Core Graphics
  14. 文本摘要(text summarization)任务:研究范式,重要模型,评估指标(持续更新ing...)
  15. 虚拟摄像头之一: android8.1 移植 v4l2loopback 虚拟摄像头
  16. 从“靠山吃山,靠水吃水”到守望“绿水青山”
  17. 进制之间的相互转换(超详细)
  18. 交换机putty怎么调试_【技术】如何登陆交换机进行命令配置?常用的交换机组网模拟器有哪些?...
  19. 什么是 Substrate
  20. AutoSAR系列讲解(实践篇)11.4-NvBlockSwComponents(上)

热门文章

  1. DataV构建大屏(全屏)数据展示页面
  2. Ubuntu16环境安装和使用NFS
  3. Windows2003下运行JSP,环境配置教程(J2SDK+Tomcat5+IIS)
  4. 云计算时代运维的出路在哪?
  5. 求求你学学医疗保险小知识吧
  6. A Comprehensive Measurement Study of Domain Generating Malware 原文翻译
  7. 利润最大化下的模型cutoff测算
  8. grub引导项修复详解_Grub引导项修复详解
  9. 牛年交个朋友,重新认识一下云和恩墨!
  10. 神武4最新服务器,神武4手游 角色转服扩大限服范围