编译程序和解释程序有什么区别?

1. 编译程序和解释程序的区别:

编译型是使用编译器编译后生成计算机硬件可直接执行的指令,解释型是在运行时才由解释器逐语句去执行。

编译型代表:C&C++,C#,Java,解释型代表:html,javascript。区别有很多,说说常见的几个:

  1. 编译型语言的源代码有错误编译不通过,无法生成可执行代码,更无法执行程序;解释型语言只有执行时才会判断是否出错,即使一句出错,也可以继续执行下一句。
  2. 编译型语言都为强类型,即必须说明数据的类型,如int a;解释型语言多为弱类型,如js中var a,a可以为字符串也可以为整形。
  3. 编译型语言执行效率上大大优于解释型,主要因为编译器在编译过程中会根据不同平台自动优化目标代码,且特点为1次编译,N次运行,另外强类型的程序安全性高;解释型语言无上述过程,逐语句翻译造成执行效率低下,每次执行都会重复解释一遍,并且安全性低。
  4. 编译型程序适合对通用性,重复性,高效性有要求的系统,如开发操作系统;相比解释型语言更具灵活性,如开发网站前台页。
  5. 编译程序编译时间较长,运行速度较快

2. 翻译程序

翻译程序是指把高级语言源程序换成机器语言程序(目标代码)的软件。
翻译程序有两种:

  1. 编译程序。它将高级语言一次全部翻译成目标程序,每次执行程序时,只需要执行目标程序,因此只要源程序不变,就无需重新编译。
  2. 解释程序。它将源程序的一条语句翻译成对应的机器目标代码,并立即执行,然后翻译吓一跳源程序语句并执行,直至所有源程序语句全部都被翻译完。
  3. 汇编语言也是一种语言翻译程序,它把汇编语言源程序翻译成机器语言程序。汇编语言是一种面向机器的低级语言,用机器语言的符号表示,与机器语言一一对应。

编译器结构

编译程序和解释程序有什么区别?_第1张图片

你可能感兴趣的:(计算机组成原理)