三分钟看懂编译型语言和解释型语言概念、特点、区别,动态语言和静态语言的概念、区别、特点优缺点
三分钟看懂编译型语言和解释型语言概念、特点、区别,动态语言和静态语言的优缺点
编译型语言和解释型语言:
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
动态、静态语言的优势和缺点:
动态语言的优势:代码相对比较简洁,无需编写各种类型代码,方便用户阅读;
动态语言的缺点:调试不方便,代码命名容易混;
静态语言的缺点:代码相对繁琐,需要书写各种表示类型的代码,阅读不方便,
静态语言的优点:在调试时比较方便,代码规范。