三分钟看懂编译型语言和解释型语言概念、特点、区别,动态语言和静态语言的概念、区别、特点优缺点

三分钟看懂编译型语言和解释型语言概念、特点、区别,动态语言和静态语言的优缺点

编译型语言和解释型语言:

0.补充:

1.计算机并不能直接识别各种编程语言,需要将各种编程语言转化成机器能够识别的指令集

2.由于制造计算机的公司很多,所以不同公司制造的计算机的cpu架构是不同的,对于不同架构的cpu所能够识别的指令集又是不同的,有了这个补充概念再往下看。

1.概念

编译型语言 是指像 C 这样直接将代码转换成机器指令在本地机器上运行的语言;

C语言 ——> 机器指令(只能有一种类型的cpu可以识别)

解释型语言 则是先把代码翻译成字节码,再把字节码在对应的虚拟机上运行,由虚拟机把字节码再转成***机器指令***运行,比如python 、java语言。

python、Java ——> 字节码 ——> 机器指令

(虚拟机)

例子

编译型相当于一个谷歌全文翻译,一次性把整篇英文文章翻译成中文,然后以中文模式储存,以后中国人直接拿来阅读就可以了,但是其他国家的人(其他cpu)就不能阅读了,因为他看不懂中文(这种***指令集***);

解释型相当于一个谷歌段落翻译,每次阅读的时候现场进行翻译,翻译一段阅读一段,什么国家的人(何种cpu)来阅读就翻译成哪国语言(对应指令集)

特点

1.这样看解释型语言运行时的效率就不如编译型的了,因为编译型的不用再现场翻译了

2.但是解释型的移植性好,每次不同的机器通过虚拟机解释成不同的指令集就可以了

什么是动态语言:

动态语言是指在运行前不检查数据的类型,而在运行的***过程中***再检查数据类型,每次编写程序是不需要用户自己定义数据类型,而是在内部隐式的对用户定义的数据进行类型记录;

python:

a = 100         # 不需要在a前面定义变量a的数据类型,内部自动记录了整形
b = 3.1415      # 不需要在b前面定义变量b的数据类型,内部自动记录了浮点型

什么是静态语言:

静态语言是指在运行前(编译成机器指令的时候)要检查数据的类型,用户在编写程序要自己定义数据的类型。

C:

int a              // 需要提前定义a的类型
a = 100
float b            // 需要提前定义b的类型
b = 3.1415

动态、静态语言的优势和缺点:

动态语言的优势:代码相对比较简洁,无需编写各种类型代码,方便用户阅读;

动态语言的缺点:调试不方便,代码命名容易混;


静态语言的缺点:代码相对繁琐,需要书写各种表示类型的代码,阅读不方便,

静态语言的优点:在调试时比较方便,代码规范。

原文地址:https://www.cnblogs.com/duanming/p/11830302.html