解释型语言(什么语言是解释型语言)
解释型语言
很多初学者学了几门编程语言特征,但是并不清楚这些编程语言到底前提是编译型语言还是解释型语言。

什么是解释?什么是编译?
如你学过C语言特性你就会知道,C语言在执行前一定要先编译一下,如果发现语法错误,一定编译不通过说。
C语言编译程序器首先要将你编写的代码编译成区别可执行常量文件程序,比如在Windows系统上首特征先要编译生成一个.exe的文件,然后才可以执行,解释型语言产生目标程序吗。
而解释型语言就是,解释一条程序执行一条,比如Java语言就是这样是什么,如果有一句代码发生错误的话,程序就执行到那一句才会停下来报错,边解释边执行的语言,解释就是一句一句的翻译。
如下图所示,编译型语言就是先从源程序转换成机器指令,然后再由机器运行,而解释型语言就是逐条读取,逐条执行,解释型语言的用处。

为什么会有这两种类型较强的说编程语言?
我认为主要是为了解决跨平台性的问题区别,一般编译型语言跨平台性都不好,解释型语言源程序,比如C语言在不同的操作系统下需要使用不同的编译工具进行编译,编译出来的机器代码是不同的。
所以较强C语言程序说进行移植后,需要重新编译源程序java。
而解释型说语言就不一样,比如JAVA,JAVA程序首先通过编译器编译成class字节码文件,也就是二进制文件。
使用过解释型命令行操作排行的朋友知道这部排行通过Javac进行编译,下面什么语言是解释型语言。这个字节码目标文件与平台无关是什么。
如果在Windows平台上运行,则通过Windows平台上的java虚拟机(VM)进行解释。
如果运行在Linux平台上,则语言通过Linux平台上的Java虚拟机进行解释执行是什么。
所以说能跨平台,前提是平台上必须要有相特性匹配的Java虚拟机,如果没有java虚拟机,则跨平台不能解释型进行跨平台。
简单来说,解释性语言排行,就是Java程序的跨平台是因为Java虚拟机跨平台,所以跨平台它可以跨平台。

你会发现如果你要运行跨平台Java程序首先要安装解释性Java虚拟机,其实目标就是JDK,JDK里面包含了jvm,没有JVM你是无法执行Java语言编写的软件的。
把字节码文件通过类加载源程序器加载进JVM中,然后进行不属于特性字节码的校验,没有问题就通过解析器把字节码翻译成当前机器解释性能识别的机器码,然后交给操作系统去进行调度执行。
虽然字节码文件与平台无关,但是特定平台的机器只能执行其对应的机器码。那么c就执行需要有一个中间件来把字节码翻译成对应的平台机器码,这个就是解析器,而解析器其实就是JVM里面的一个组件。
JVM的执行流程:
1、JVM使用类加载器(Class Loader)装载 class (二进制)文件
2、字节用处码效验(主要做排行以下五步)
(1)检查当前class文件的版本和JVM的版本是否兼容
(2)检查当前代码是会破坏系统的完整性
(3)检查当前代码言和是否有常量不属于栈溢出的情况
(4)检查当前代码特性中的参数类型言和是否语言正确
(5)检查当前c代码中的类型转换操作源程序是否正确
3、把通过校验的字节码解析成机器区别码,不属于解释型语言,解释性语言处理常量,解析器是一句一句进行代码进行解析的,解释型语言的可以跨平台执行,前提是。
同样Pyhton也是一种解释型语言,它的原理和编译型Java类似,只不过Pyhton代码是先编译成pyc文件也就是二进制文件同样也是跨平台的,解释型语言,然后再由Pyhton虚拟机解释执行。
其实解释型语言的编译(compile)不是一个强制的操作解释性。事实上,编译是一个自动执行的过程编译型。多数情况下,你甚至感觉不到它的存在。
这就较强是为什么解释型语言可移植性性能没有编译型语言的好,原因解释型就是因为虚拟机的存在,中间隔了一层,自然就慢了,解释型语言特征。
本来像C语言那样可以直接由操作系统前提运行,而Java和Pyhton语言要先由可移植性操作系统运行虚拟机,然后再由言和虚拟机运行对于的Java和Pyhton程序,自然而然运行速度就慢,需要的内存也比较高。

总结来说就是,编译型区别语言有它的特征用处优点,也有它的缺点,优点就是运行快源程序,解释性语言怎么说,内存小,缺点就是跨平台性差。
解释型语言刚好和编译型语言相反,优点是跨平台性好,缺点是相对于编译型语言来说运行慢,内存大,c语言是不是解释型语言。

欢迎关注我,学习更多计算机知识!