1. 什么是编程语言
编程语言本质就是一门语言,和我们人所使用的汉语英语本质是一样的,也就是和另一种事务沟通的工具,而编程语言就是和计算机沟通的工具;
2. 机器语言
机器语言就是计算机能直接理解的二进制,机器语言编程就意味着直接使用二进制编程;
优点: 其所编写的程序可被计算机无障碍理解,执行效率高;
缺点: 因复杂所以开发效率低,依赖具体的硬件,跨平台差;
3. 汇编语言
汇编语言用一个英文标签对应一组二进制指令,对比机器语言是一种进步,本质还是直接操作硬件;
优点: 英文标签编写,对比机器语言复杂度降低,执行效率高;
缺点: 依赖具体硬件,跨平台差,开发效率低;
4. 高级语言
高级语言则就是用人能理解的字符去编写程序,其执行是在向操作系统发送指令,并非直接操作硬件,高级语言是建立在操作系统之上的,使用高级语言无需考虑硬件细节,开发效率得到极大提升,因使用人类字符编译,计算机需要翻译才能理解,执行效率低于底层语言;
因翻译方式的不同又分为编译型和解释型两种;
4.1 编译型
编译型会把程序编译成计算机能识别的二进制指令,然后由操作系统拿着编译好的指令操作硬件(如c语言);
优点: 编译一次拿到的结果可重复执行,无需再次编译;
缺点: 编译的代码结果只针对当前执行的平台有效,无法跨平台;
4.2 解释型
代码的执行需要解释器,解释器会边执行边翻译(如Python);
优点: 运行依赖于解释器,不同的平台有对应的解释器,跨平台强;
缺点: 每次执行都需要翻译;
5. 弱类型与强类型语言
弱类型:
数据类型可被忽略的语言,例如linux的shell语言定义一个变量,随着调用方式的不同,数据类型可随意切换。
强类型:
数据类型着重的语言,即变量的数据类型一旦被定义,就不会在改变,除非进行强转换操作等(如Python);
6. 动态型与静态型语言
动态型:
运行时才进行数据类型检查,即在变量赋值时,才确定变量的数据类型,不用事先给变量指定数据类型;
静态型:
需要事先给变量进行数据类型定义;
7. 效率对比
执行效率: 机器语言>汇编语言>高级语言(编译型>解释型)
开发效率: 机器语言<汇编语言<高级语言(编译型<解释型)