将高级语言程序翻译成机器语言程序的软件叫做【翻译程序】。
【翻译程序】有两种,一种是编译程序,一种是解释程序。

编译程序

编译程序是一个语言处理程序。它将高级语言程序(如Pascal,Fortran,c等)源代码作为输入,直接进行翻译生成出机器语言的目标程序(汇编语言程序或二进制代码程序),然后再让计算机执行这个目标程序,得到计算结果。

需要注意的是:以上讲的是编译和运行两个分开的阶段,也就是说程序必须要全部翻译完毕之后,才能运行。但是在一个交互环境当中,并不需要将两个阶段分开,也就是我们在使用解释程序的时候,它不需要在运行前就去把源程序翻译成目标代码,也可以在某台机器上运行程序,并生成结果。

编译程序工作时,先分析,后综合,从而得到目标程序。
分析指的是:词法分析、语言分析。
综合指的是:代码优化,存储分配、代码生成。

为了完成分析综合任务,编译程序对源程序进行一次甚至多次扫描,每次扫描完成一项或多项任务,也可能一项任务被分成多次扫描才能完成。
例如:进行一项4此扫描的翻译:
(1)第一次扫描做:词法分析
(2)第二次扫描做:语法分析
(3)第三次扫描做:代码优化和存储分配
(4)第四次扫描做:代码生成

解释程序

同样将源代码(如basic语言)的程序作为输入,解释一句就提交计算机执行一次,并不形成目标文件;
就像口语交际的中文翻译,说出一句翻译一句,或者是终端的dos窗口,在终端输入一条命令与句,解释程序立刻返回给终端若干句;

这种只是适用于小型机器的计算问题,解释程序的执行速度较慢,如果出现循环,也是重复着提交一句。

解释程序会接受某个语言的程序并且立即去执行这个源程序,它的工作模式就是:一个个获取、分析并执行源程序的语句,一旦第一个语句分析结束后,源程序就会开始运行并且去生成结果,它比较适合我们想以交互方式来工作的情况,也就是说,我们希望在获取下一个语句之前了解每个语句的执行结果,允许执行时修改程序。

解释程序其实有很多,比如说BASIC语言解释程序、LISP语言解释程序、UNIX命令语言(shell)解释程序、数据库查询语言SQL解释程序以及java语言环境中的BYTECODE解释程序

区别

在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程;
而在解释方式下,解释程序和源程序(或某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。

解释器翻译源程序时不生成独立的目标程序,而编译器则将源程序翻译成独立的目标程序。

编译程序 解释程序相关推荐

  1. 高级语言?编译程序?解释程序?目标代码?

    编译程序?解释程序? 编译程序解释程序啥作用?将高级语言翻译成可以目标代码,使得目标代码可以在机器上运行 高级语言? 作为一门高级语言,javascript肯定不能是在电脑上直接运行的,肯定有java ...

  2. 1.4 计算机系统概述思维导图小结-常见问题和易混淆知识点(组成原理)

    文章目录 1.计算机系统概述思维导图 2.常见问题及易混淆知识点 (1)主频高的CPU一定比主频低的CPU快吗?为什么? (2)不同级别的语言编写程序有什么区别?哪种语言编写的程序能被硬件直接执行? ...

  3. 北大青鸟c语言课后答案,北大青鸟C语言教程--第一章 C语言基础.ppt

    <北大青鸟C语言教程--第一章 C语言基础.ppt>由会员分享,可在线阅读,更多相关<北大青鸟C语言教程--第一章 C语言基础.ppt(20页珍藏版)>请在人人文库网上搜索. ...

  4. 计算机应用与基础进制,计算机应用基础选择题-删进制、字符题(2).docx

    PAGE 1 数字1是第几位 答案就是第几位 计算机理论选择题部分 世界上第一台计算机是1946年美国研制成功的,该计算机的英文缩写名为| MARK-II|ENIAC|EDSAC|EDVAC||non ...

  5. 计算机一级考试复习资料,全国计算机一级考试复习资料

    全国计算机一级考试复习资料 假设给定一个十进制整数,转换成对应的二进制整数,那么就这两个数字的位数而言,与相比,.的位数大于:的位数大于:的位数大于等于的位数大于等于:的位数大于等于:在计算机内部用来 ...

  6. 思特奇2019校招笔试题

    这里仅记录自己不会的哦,有需要的可以参考下哦 1Java接口的修饰符可以为(d) A.private        B.proected         C.final          D.abst ...

  7. 2021年5月软件设计师考前总结笔记

    一. 计算机基础 1. 运算器和控制器的组成和含义 运算器&&控制器 运算器 ① 算数逻辑单元ALU: 数据的算数运算和逻辑运算; ② 累计寄存器AC: 通用寄存器, 为ALU提供一个 ...

  8. 计算机组成原理题库(唐朔飞)

    计算机组成原理题库 ~~02|01|1|2|A0400047_010_1|871 ^^通常划分计算机发展时代是以( )为标准的. A.所用电子器件 B.运算速度 C.计算机结构 D.所用语言 ^^A ...

  9. 计算机组成原理学习笔记(上)

    计算机系统概论 计算机发展历程 原始计算工具 中国人的智慧之光 机械式计算机 西方人的智慧 机电式计算机 电子计算机 1,最古老的计算工具:算筹 2,冈特计算尺 3,达芬奇机械式计算机 4,1642年 ...

最新文章

  1. mysql被格式化恢复数据_三种常见数据库文件恢复方法介绍
  2. bzoj2049 [Sdoi2008]Cave 洞穴勘测
  3. mysql 创建定时器
  4. 全球域名解析商域名增量Top10:万网增量及涨幅皆第三
  5. Mysql的那些事儿(部分涉及数据库知识总结)
  6. 视频超分中的自监督适应方案
  7. 3d激光雷达开发(基于统计滤波)
  8. layui table异步调用数据的时候,数据展示不出来现象解决方案
  9. 登录日志怎么实现_运维必看:日志标准化必须面对的 4 类问题
  10. AngularJS 快速入门
  11. cvSlite 和cvMerge 实现图像的通道分离和混合的说明
  12. IoT全品类全场景来了,但5G时代“大雁群飞”仍需紧盯“服务”
  13. args.verbose 的意思
  14. 小提琴统计图_R语言数据可视化系列(4)箱线图和小提琴图(附详细代码)
  15. java 判断日期是周末_java计算两个日期之前的天数实例(排除节假日和周末)
  16. 从零实施ERP如何成功
  17. 微信小程序点赞+取消点赞多项点击
  18. 百度网盘不限速方法2020_亿寻——百度网盘不限速方法
  19. 人体热释电红外传感器 PIR 原理详解
  20. 模拟电路设计中输入电阻、输出电阻的选择

热门文章

  1. mysql性能优化配置总结
  2. WPF: 本地化(Localization) 实现
  3. ATL的GUI程序设计(2)
  4. 细说CSS的transform
  5. 基于springboot+thymeleaf+mybatis的员工管理系统 —— 增删改查
  6. 【微型计算机原理与接口技术】计算机中的信息表示
  7. JZ50第一个只出现一次的字符JZ50第一个只出现一次的字符JZ25合并两个排序的链表思路
  8. 小程序入门学习20--springboot之集成mybatis
  9. arpspoof渗透工具使用方法详解+实战
  10. [转]# python中init和new的区别