编程语言
脚本语言
『脚本语言』设计的初衷是为了方便快捷地执行一些批量命令,所以被设计为可以直接运行,边解释边执行;而非像传统语言,需要在运行前先编译,因此脚本语言也被称为解释型语言。但实际上很多脚本语言也有编译环节,只不过编译是被放在解释器里自动执行了。
动/静态、强/弱类型
这二者是描述语言类型的不同维度。
静态:编译时(或运行前)就已经确定变量类型,编译时会对变量做类型检查,不会在运行阶段发生因类型导致的错误。变量类型可以是通过显式声明(如Java)或是隐式推导(如Haskell)来确定。
动态:变量类型不确定,可以在运行时被改变,因类型导致的错误是运行错误。
强类型:不允许隐式类型转换。
弱类型:允许隐式类型转换。
动态 | 静态 | |
---|---|---|
强类型 | Python | Java/Go/Haskell |
弱类型 | JS/PHP | C/C++ |
汇编语言与机器码
『机器码』是可被硬件识别和执行的由0和1组成的一串指令,不论是编写程序时用的是何种语言,最终都是被翻译成机器码来执行。
编程语言有高低级之分,越低级的语言越接近机器的指令,可以更直接地控制程序运行,同时可读性也更差;越高级的语言越接近人类的表达方式,抽象程度更高,可读性也更好。
『汇编语言』是低级语言,通过汇编程序可以直接被翻译为对应的机器码,一般每条语句会与一条机器指令一一对应。