编程语言

脚本语言

『脚本语言』设计的初衷是为了方便快捷地执行一些批量命令,所以被设计为可以直接运行,边解释边执行;而非像传统语言,需要在运行前先编译,因此脚本语言也被称为解释型语言。但实际上很多脚本语言也有编译环节,只不过编译是被放在解释器里自动执行了。

动/静态、强/弱类型

这二者是描述语言类型的不同维度。

静态:编译时(或运行前)就已经确定变量类型,编译时会对变量做类型检查,不会在运行阶段发生因类型导致的错误。变量类型可以是通过显式声明(如Java)或是隐式推导(如Haskell)来确定。

动态:变量类型不确定,可以在运行时被改变,因类型导致的错误是运行错误。

强类型:不允许隐式类型转换。

弱类型:允许隐式类型转换。

动态静态
强类型PythonJava/Go/Haskell
弱类型JS/PHPC/C++

汇编语言与机器码

『机器码』是可被硬件识别和执行的由0和1组成的一串指令,不论是编写程序时用的是何种语言,最终都是被翻译成机器码来执行。

编程语言有高低级之分,越低级的语言越接近机器的指令,可以更直接地控制程序运行,同时可读性也更差;越高级的语言越接近人类的表达方式,抽象程度更高,可读性也更好。

『汇编语言』是低级语言,通过汇编程序可以直接被翻译为对应的机器码,一般每条语句会与一条机器指令一一对应。