程序设计语言分类
(参考自龙书《编译原理》机械工业出版社)
一、通过语言的代来分类
代 | 语言名称 | 举例 |
第一代语言 | 机器语言 | 010101010 |
第二代语言 | 汇编语言 | MASM、NASM、TASM、FASM |
第三代语言 | 高级程序设计语言 | Fortran、Cobol、Pascal、Lisp、C、C++、C#、Java等 |
第四代语言 | 为特定应用设计的语言 | 用于生产报告的NOMAD,用于数据库查询的SQL和用于文本排版的Postscript |
第五代语言 | 基于逻辑和约束的语言 | Prolog和OPS5 |
二、强制式语言和声明式语言
语言种类 | 定义 | 举例 |
强制式/命令式/ 指令式言(imperative language) | 程序中指明如何完成一个计算任务的语言(所有强制式语言中都有用于表示程序状态和语句的表示方法)。需要用算法来明确的指出每一步该怎么做。它通常被看做是形式逻辑的理论,把计算看做推导。 | C,C++,C#和Java、FORTRAN、Pascal等。 |
声明式语言(declarative language) | 程序中指明要进行哪些计算的语言。描述目标性质,让计算机明白目标,而非流程。声明式编程不用告诉计算机问题领域,从而避免随之而来的副作用。 | ML、Haskell这样的函数式语言和Prolog这样的约束逻辑语言 |
三、面向对象语言(object-oriented language)和非面向对象语言
语言种类 | 编程思想 | 特点 | 举例 |
面向对象语言 | 面向对象 | 分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了 |
Simula67,Smalltalk,C++,C#,Java和Ruby等 |
非面向对象语言 | 面向过程 | 把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 |
C,FORTRAN, |
四、冯·诺依曼语言(von Neumann language)、和脚本语言(scripting language)
1.冯.诺伊曼语言是指以冯.诺伊曼计算机体系结构为计算模型的程序设计语言。今天的很多语言(比如Fortan和C)都是冯.诺伊曼语言。
2.脚本语言(scripting language)是具有高层次运算符的解析型语言,它通常被用于把多个计算过程“粘合”在一起。这些计算过程被称为脚本。Awk、JavaScript、Perl、PHP、Python、Ruby和Tcl是常见的脚本语言。使用脚本语言编写的程序通常要比其他语言(比如C)写的等价的程序短很多。脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。 它的命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。早期的脚本语言经常被称为批量处理语言或工作控制语言。