顾乔芝士网

持续更新的前后端开发技术栈

编译型语言和解释型语言

年代区分

从硬件技术和软件需求,计算机发展初期,没有可能发展真正的解释型语言,运行速度和内存都受限,只有给机器喂二进制代码才能勉强跑起来。但事实上,解释型语言却在计算机发展很早的时期曾经出现过,当然这和前面一段话并不冲突,它是由自身的考虑,也并非为了推广。

各种类型语言

  • 直接编译成二进制native代码的语言,属于编译型语言,如Fortran/Pascal/C/Objc/C++/Swfit/Rust/Go/仓颉.
  • 不需要编译成中间代码或二进制代码,可由解释器读取并执行,属于解释型语言,如Perl/PHP/Python/JavaScript/Ruby.
  • 需要先编译(成中间代码),再由解释器或虚拟机执行,属于混合型语言,如Java/C#/VB.NET.
  • VB6很特殊,开发时像解释型语言,发布应用程序可编译成伪代码P-code + 部分本机代码,运行时需要VB运行时解释P-code并执行.

互相转换

编译型语言一定可以做成解释型,但解释型一般却不能反向操作。比如经典的TCC编译器,只需要一个-run参数即可让编译器编译并执行给出结果,本质上,每种编译型语言都可以这样做。解释型语言主要为了修改方便,没有必要先“编译”,这是设计的一部分。








若文章对您有帮助,欢迎关注。助您在编程路上越走越好!

微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言