机器语言
机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。
汇编语言
汇编语言用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
高级语言
编译型与解释型
计算机只能直接理解机器语言,所以需要将高级语言翻译成机器语言,翻译的方式有两种:编译和解释。
程序从运行方式考虑分为两种:静态编译和动态解释。
- 编译型语言:在程序执行之前,先将程序编译成为机器语言,运行的时候不用重复翻译了,直接使用编译的结果。(通常称为 AOT,Ahead of time 即“提前编译”)效率高,依赖编译器,跨平台差。如:
C
、C++
、Object-C、swift、go
等 - 解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次。(通常称为 JIT,Just-in-time 即“即时编译”)效率比较低,依赖解释器,跨平台好。如:
JavaScript
、Python
、PHP、Ruby 等
动态语言与静态语言
- 动态类型语言:指在运行期间才去做数据类型检查的语言。如:
Python
、Ruby、JavaScript
、swift、PHP、Perl 等 - 静态语言:数据类型在编写代码时,就要明确数据类型。如:C、C++、C#、
Java
、Object-C、go
、Kotlin
等
强类型语言与弱类型语言
- 强类型语言:变量被指定了某个数据类型,如果不强转,那么永远是这个数据类型。如:
Java
、C#、Python
、Object-C、Ruby 等 - 弱类型语言:变量可以赋值不同数据类型的值。如:
JavaScript
、PHP、C、C++ 等