一、编程语言的分类
- 机器语言
- 汇编语言
- 高级语言
越往后,执行效率越低,开发的效率越高。
二、高级语言的分类
1、编译型语言和解释型语言
区别:
- 程序执行之前先
编译
成机器码。 - 程序执行时,边运行边
解释
成机器码。
拓展:混合型语言
:在编译的时候不是直接编译成机器码而是中间码。
拓展:JIT(即时编译)
,它是动态编译
的一种,结合了传统的提前编译(AOT)
和解释,即在程序执行时编译而不是在执行前。
2、静 / 动
(1)静态语言和动态语言
运行时可以改变其结构的语言(例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。)
(2)强类型语言和弱类型语言
区别:
- 一个变量定义时需指定数据类型,之后不可变,只能接受相同数据类型的值(除非涉及自动类型转换和强制类型转换)
- 一个变量定义时无需指定数据类型,可以接受任何数据类型的值
(3)静态类型语言和动态类型语言
区别:
- 编译器在 compile time 执行
类型检查
- 编译器在 runtime 执行
类型检查
3、范式
(1)面向过程语言和面向对象语言
(2)命令式语言、函数式语言、逻辑式语言
(3)命令式编程和声明式编程
- 命令式编程 Imperative programming
- 声明式编程 Declarative programming
(4)结构化编程和非结构化编程
结构化编程(Structured programming)采用子程序、块结构、for循环以及while循环等结构,来取代传统的 goto。
(5)流程驱动编程对比事件驱动编程
(6)总结
现在的高级编程语言大多都是支持多范式设计的。
三、高级语言的 TOP 榜
https://www.tiobe.com/tiobe-index/
四、其他别称
1、脚本语言
脚本语言(scripting language)
也是一种编程语言。
它设计的初衷,往是作为一种临时的“补丁”。它的设计者并没有考虑把它作为一种“通用程序语言”,没有考虑用它构建大型的软件。所以一般来说功能较弱,会有坑。
一般有以下特征:
- 属于编译型语言
- 简单、易学、易用
2、胶水语言
胶水语言(glue language)
是用来连接软件组件的程序设计语言
它通常是脚本语言。