一、编程语言的分类


机器语言
汇编语言
高级语言

越往后,执行效率越低,开发的效率越高

二、高级语言的分类


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)是用来连接软件组件的程序设计语言

通常是脚本语言