前言
旁边一小伙问:python为什么比c运行效率低?
我说:python是解释型语言
小伙问:啥是解释型语言?
…
概念
简单概括
两个语言最终都必须转换为二进制代码(机器语言)
编译型语言在运行前就有一个编译的过程,运行的时候不需要重新编译,所以效率高;但是编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。
| 优点 | 缺点 |
|---|---|
| 效率高 | 可移植性差 |
解释型语言在运行时才开始翻译为机器语言,每执行一次就得翻译一次,因此效率低;不过有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。
| 优点 | 缺点 |
|---|---|
| 可移植性好 | 效率低 |
Java属于哪类语言
既然编译型和解释型各有缺点就会有人想到把两种类型整合起来,取其精华去其糟粕。就出现了半编译型语言。比如C#,C#在编译的时候不是直接编译成机器码而是中间码,.NET平台提供了中间语言运行库运行中间码,中间语言运行库类似于Java虚拟机。.net在编译成IL代码后,保存在dll中,首次运行时由JIT在编译成机器码缓存在内存中,下次直接执行。
Java先生成字节码再在Java虚拟机中解释执行。
严格来说混合型语言属于解释型语言。C#更接近编译型语言。

本文深入探讨了编译型与解释型语言的区别,分析了它们各自的优缺点,并以Python和C#为例,说明了半编译型语言如何结合两者的优点。通过对比,读者可以更好地理解不同语言的工作原理。
1034

被折叠的 条评论
为什么被折叠?



