编译型语言和解释型语言

定义:

编译型语言: 在执行前对已编写好的程序进行一次编译(即将代码翻译成机器语言).这个过程也是编程中的编译时,根据平台的编译器生成一个可执行文件,如windows下的exe, c语言下的cmd文件. 此后每次运行这些文件时 不需要进行编译. 所以运行时效率较高. 但是跨平台性较差. 如已编译好的exe文件不能在mac下使用,需要重新进行编译.灵活性也比较差, 因为编译好的文件如果需要修改则需要重新编译生成可执行文件. (例外:Objective-C的运行时机制可以在运行时才修改方法和属性 这个是灵活的) (使用编译器进行编译)


解释型语言:在执行时才将运行到的代码翻译成机器语言. 每执行到一句代码是直接编译然后执行. 再继续编译下一句代码再继续执行. 这种类型的语言跨平台型好. 因为在运行时才进行编译. 一个文件可以在不同的平台下的虚拟机中编译. 如Java语言生成class文件后. 可以在windows下的JVM下运行同时在Mac的VM下运行. 这种类型效率较低因为需要每句代码编译一次->执行->编译->执行. PHP, Javascript, Python都属于解释型语言. (使用翻译器进行翻译)


例子:

c语言是编译型语言的经典例子.

代码写好后, 需要使用编译器生成一个cmd文件. 然后再运行cmd文件.此时如果对代码进行修改, cmd文件的运行结果和过程不会发生改变. 任何代码上的修改都需要重新编译成cmd文件才能运行并看到成果.

PHP, Java是解释型语言的例子.

代码编写完成后, PHP会保存为一个后缀为php的文件. Java则生成一个class文件.

在不同的平台上. PHP会在运行时编译每句代码并执行. Java也会根据不同平台的虚拟机编译class文件.然后再输出结果.如果在文件中修改代码. 马上就能看到结果不需要重新编译.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 编译型语言: 首先将源代码编译生成机器语言,再由机器运行机器码(二进制)。像C/C++等都是编译型语言。 程序在执...
    frankisbaby阅读 3,318评论 0 0
  • 计算机不能直接理解高级语言,只能理解和运行机器语言,所以必须要把高级语言翻译成机器语言,计算机才能运行高级语言所编...
    舒小贱阅读 3,297评论 0 1
  • 计算机是不能识别高级语言的 当我们在运行一个高级语言的时候,需要一个翻译机来把 高级语言转变为计算机能够读懂的机器...
    Kevin_Curry阅读 5,728评论 0 4
  • 首先,我们编程都是用的高级语言(写汇编和机器语言的大牛们除外),计算机不能直接理解高级语言,只能理解和运行机器语言...
    HaleyLiu阅读 21,264评论 2 10
  • 难得做过的梦再遇见,我会使得梦愈发接近现实,和期盼拉近距离,去延长生命的弧线。做过的那些梦中梦,像一位网架...
    汪雅峥阅读 2,206评论 0 1