解释型语言和编译型语言

上一篇 / 下一篇  2019-05-13 13:46:54 / 天气: 阴雨 / 心情: 平静 / 个人分类:编程语言

1、编译型语言
定义:编译型语言---需要通过编译器(complier)将源代码翻译成机器代码之后才能执行的语言。一般需要经过编译(compile)、链接(link)这连个步骤。编译是把源代码编译成机器代码,链接是把编译的各个模块的机器代码和依赖库串联起来生成可执行文件。

优点:编译器一般会有预编译的过程对代码进行优化。因为编译只需要做一次,运行的时候不需要编译,所以编译型语言的执行效率要高。可以脱离语言环境独立运行。

缺点:编译之后如果需要修改源代码,就需要将整个模块重新编译。编译的时候根据运行环境生成机器代码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。

代表语言:C、C++、Pascal、Object-C以及苹果新语言swift

2、解释型语言
定义:解释型语言---不需要编译,相比编译型语言少了道工序,解释型语言在运行程序的时候才逐行翻译语句。

优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不需要停机维护。

缺点:每次运行的时候都需要解释一遍,性能上不如编译型语言。

代表语言:JavaScript、Python、Erlang、PHP、Perl、Ruby

3、混合型语言
定义:既然编译型和解释型各有缺点就会有人想到把两种类型整合起来,取其精华去其糟粕。就出现了半编译型语言。比如C#,C#在编译的时候不是直接编译成机器码而是中间码,.NET平台提供了中间语言运行库运行中间码,中间语言运行库类似于Java虚拟机。.net在编译成IL代码后,保存在dll中,首次运行时由JIT在编译成机器码缓存在内存中,下次直接执行。Java先生成字节码再在Java虚拟机中解释执行。严格来说混合型语言属于解释型语言。C#更接近编译型语言。

TAG: 解释型语言 编译型语言

 

评分:0

我来说两句

日历

« 2024-02-22  
    123
45678910
11121314151617
18192021222324
2526272829  

数据统计

  • 访问量: 12400
  • 日志数: 32
  • 图片数: 1
  • 建立时间: 2019-01-22
  • 更新时间: 2019-08-08

RSS订阅

Open Toolbar