首页 > 技术文章 > 解释性编程语言和编译型语言

Xxiscoming 2020-08-30 15:35 原文

从网络资源摘抄下来,先熟悉,后续有感悟补充

先大致了解下,知道两者的区别以及常用的语言分类

1.编译型语言:需通过编译器(compiler)将源代码编译成机器码之后才能执行的语言

  • 执行过程:源代码->汇编代码->机器码->CPU执行
  • 特点:执行效率高,一次性编译,后续可以直接脱离语言环境,不需要虚拟机运行;但是可移植性性差(跨平台性差),依赖于编译器,需要根据运行的操作系统环境编译不同的可执行文件
  • 代表语言:C,C++,Swift
  • 适用范围:编译型语言由于程序执行速度快,同等条件下对系统的要求比较低,因此像开发操作系统、大型应用程序、数据库系统等软件时一般采用

2.解释型语言:解释型语言的程序不需要编译,相比编译型语言省了道工序,解释性语言在运行程序的时候才逐行翻译

  • 特点       执行效率低:程序不需要编译,程序在运行时才翻译成机器码,每执行一次就要翻译一次,不可脱离语言环境独立运行(需要虚拟机)跨平台性好:依赖于解释器,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护
  • 代表语言:Python、JavaScript、PHP、Shell、Ruby、MATLAB、Perl
  • 适用范围:一些网页脚本,服务器脚本以及辅助开发接口之类的对速度要求不高,对不同系统兼容性有一定要求的程序通常使用解释型语言

3.JAVA:

Java语言应是编译型-解释型语言,因为其同时具备编译型和解释型两种特性:

Java文件先编译成与平台无关的.class字节码文件,然后.class字节码文件既可以在Windows平台上的Java虚拟机(JVM)上进行解释运行,也可以在Linux平台上的JVM上解释运行。而JVM的翻译过程是解释型的,JVM从.class字节码文件中读出一条指令,翻译一条指令,然后执行一条指令,这个过程就称为Java的解释执行

 

推荐阅读