浅析编译型语言和解释型语言的区别

编译型语言如C++、Golang在运行前需通过编译器转换为可执行文件,运行效率高但移植性差;解释型语言如Python、JavaScript则在运行时逐行解释,可跨平台但效率较低。两者各有特点,适用于不同场景。
摘要由CSDN通过智能技术生成

编译型语言和解释型语言的区别

前言

首先要搞清楚一点,不管使用哪种语言编程,最终在程序真正运行之前必须将源代码转换成二进制指令。因为计算机只能识别某些特定的二进制指令(即常说的机器码)。

既然都需要进行源码的转换,那在什么时候将源代码转换成二进制指令呢?不同的编程语言有不同的规定,也就有了编译型语言和解释型语言。


概念及图解

  • 编译型语言:程序运行前需要将所有源代码一次性转换成二进制指令,也就是生成一个可执行程序(Windows 下的 .exe),比如C语言、C++、Golang、Pascal(Delphi)、汇编等。
  • 编译器:编译型语言将源代码转换成二进制指令的工具就叫编译器。
  • 解释型语言:不需要提前一次性转换,而是一边执行一边转换,需要哪些源代码就转换哪些源代码,不会生成可执行程序。比如 Python、JavaScript、PHP、Shell、MATLAB ,Java等。
  • 解释器:解释型语言将源代码转换成二进制指令的工具就叫解释器。

编译型语言和解释型语言的执行流程

编译型语言

  1. 编译一次后,脱离了编译器也可以运行,并且运行效率高。即 “一次编译,无限次运行”。
  2. 可移植性差,不能跨平台运行。即同一个.exe在windows可执行,在Linux就无法识别。

解释型语言

  1. 可跨平台性,通过不同的解释器,将相同的源代码解释成不同平台下的机器码。
  2. 需要一边运行一遍转换,运行效率较编译型语言低。

参考文献

http://c.biancheng.net/view/4136.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值