【Java基础】解释性语言和编译型语言

目录

编译型语言

例子

概念

为什么编译型语言跨平台性较弱

解释性语言

例子

概念

为什么解释性语言能一处编写,到处运行


编译型语言

例子

C、C++、Golang、汇编等

概念

        对于编译型语言,开发完成以后需要将所有的源代码都转换成可执行程序,比如Windows下的.exe文件,可执行程序(.exe)里面包含的就是机器码,只要我们拥有可执行程序,就可以随时运行,不用重新编译了,达到“一次编译,无限次运行”

        编译型语言一般是不能跨平台的,也就是说不能在不同的操作系统之间随意切换

        对于编译型语言,我们下载到的是可执行文件,源码被作者保留,所以编译型语言的程序一般是闭源的

为什么编译型语言跨平台性较弱

        因为不同操作系统实现的API接口不同,对可执行文件内部有不同的要求

        不同平台支持的源代码可能不同,比如

                Windows平台下该函数是Sleep,参数是毫秒

                Linux平台下函数式sleep,参数是秒

解释性语言

例子

Python、JavaScript、Shell等

概念

        对于解释性语言,每次执行程序都需要一边转换以便执行,用到哪些源代码就将哪些源代码转换成机器码,用不到的不进行处理

        因为每次执行程序都需要重新转化源代码,所以解释性语言的执行效率天生就低于编译型语言,甚至存在数量级的差距。计算机的一些底层功能,比如操作硬件,或者关键算法,一般都使用C/C++实现,只有在应用层面(网站开发、小工具)才会使用解释型语言

        因为再运行解释性语言得时候,我们始终都需要源代码和解释器

        对于解释性语言来讲,我们下载到的是源代码,因为作者不给源代码,程序就无法运行,所以解释性语言的程序一般是开源的

为什么解释性语言能一处编写,到处运行

        因为解释性语言存在解释器,我们所说的跨平台,是指源代码跨平台,不是指编译器跨平台,解释器用于将源代码转化为机器码,对于不同的平台,只需要用不同的解释器来翻译就好了,这些解释器必须遵循相同的语法,识别同样的函数,完成同样的功能,只有这样,同样的代码在不同平台的执行结果才是相同的

        相当于在代码和操作系统之间,多了一层解释器,源代码相当于母语,解释器相当于不同的翻译,不同的操作系统相当于不同的语言,你想要让全世界的人们(操作系统)看懂你写的文章,只需要请不同的翻译(解释器)来对你的母语(源代码)进行翻译(就是)就可以了,而文章的内容与含义(源代码)是不变的,变得只是语言(操作系统)

参考文章

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

编译型语言和解释型语言的区别 - 可尼 - 博客园

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值