编程语言知识集锦
编程语言的分类
可以从多个角度划分编程语言的类别,一种语言同时可以属于多种分类。
从语言是否和体系结构紧密相连,编程语言可以分为:
- 低级语言:指机器语言或者汇编语言。这类语言不需要太多的编译步骤就可以被CPU执行
- 高级语言:其它语言都属于高级语言,高级语言高度封装,语言要素和CPU指令无关,可读性高。这类语言的代表有:C、C++、Java、Python等
以下的分类,仅针对高级语言。
从是否需要编译后才能执行,编程语言可以分为:
- 解释型语言:语言由解释器逐行解释执行。大部分脚本语言都是解释型语言。这种语言的缺点是性能差。这类语言的代表有:JavaScript、Python、Shell等
- 编译型语言:语言必须首先编译为底层机器(或者虚拟机)上的机器指令码,然后执行。这类语言的的代表有:C、Java等
从是否支持在运行期间修改程序的结构,编程语言可以分为:
- 静态语言:一般都是编译型语言,一经编译,程序、数据类型的结构就固定,不能在运行时修改。这类语言的代表有:C、C++等
- 动态语言:允许在运行时动态的修改程序的结构,例如增加对象的成员字段、增加一个函数。注意动态语言和解释型语言/脚本语言不是一回事。这类语言的代表有:JavaScript、Python等。Java、C#具有一定的动态语言特征
从编程范式(或者说编程风格)的角度来说,可以分为:
- 面向对象:将对象作为程序的基本单元,将程序和数据封装其中,抽象、封装、多态等是其核心特性。这类语言的代表有:C++、Java、Python等
- 函数式编程:将函数作为编程的核心,函数作为独立类型,可以被赋值、可以作为入参、返回值。这类语言的代表有:C、C++、JavaScript、Python等。Java 8的引入的新特性增加了其函数式特征
- 泛型编程:即参数化类型,允许在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。这类语言的代表有C++、Java等
- 面向切面编程:以“切面”这种语言构造为基础,切面是一种模块化机制,用来描述分散在对象、类或函数中的横切关注点。这类语言的代表有AspectJ
注意很多语言都是多范式的,例如C++。
Leave a Reply