编译原理(一)


一编译原理和语言基础知识:编译原理基础知识

解释型语言:解释器是一条一条的解释执行源语言,不需要编译直接由解释器执行,对应的语言称为解释型语言也称作脚本语言。比如 Php,Ruby,JavaScript、Python 等就是典型的解释性语言。

编译型语言:解释型语言同编译型语言相比,编译器是把源代码整个编译成目标代码,执行时不在需要再去编译器,直接在支持目标代码的平台上运行,所以执行效率比解释执行快很多。比如C语言代码被编译成二进制代码(exe程序),在windows平台上执行。

1.1 解释型语言和编译型语言的共同点:都需要转换成二进制才能执行。

1.2 解释型语言和编译型语言的不同点

  • 1、运行的时候是否需要编译器
    编译型语言运行的是最终的二进制代码了,所以不再需要编译器;但是解释型语言边解释、边运行,所以运行时候还有部分代码没有解释好举个例子:在浏览器里,要看 html 效果,要通过带有内置编译工具的软件去查看(如:浏览器或者模拟浏览器的工具)。
  • 2、执行速度
    毫无疑问边翻译边执行的解释型语言的速度会比编译型语言运行速度要慢。但是CPU的运行速度如果很快,你可能看不出来,偶尔会看到“有点卡”的效果。
  • 3、可移植性对比
    编译型语言运行二进制内容,一旦 CPU 指令改变,之前的二进制文件可能运行不了了。即在其他硬件平台上运行,可能出错,如果想在其他平台运行就需要编译出新的二进制文件,所以编译型语言可移植性差;解释型语言在需要的时候才开始编译、运行,所以具有可移植性,在很多平台都能运行起来。
  • 4、升级上对比
    编译型语言的二进制文件如果要升级,需要重新下载一个新的二进制文件了。如QQ的升级,就是要重新下载、安装、覆盖;
    而解释型的语言,只要重新写好源代码即可。如网站平台升级,用户只要重新刷新即可。
  • 5、 应用领域
    编译型语言应用领域通常是安装软件,如:桌面或手机上安装软件;
    解释型的语言的应用领域通常是互联网,网站等,刷新就可以看到最新效果。