我不是语言专家,但我最近开始研究语言并试图了解主要概念和“他们的”语言。这类似于 another question about books .首先,主要的编程语言概念是什么,例如
结构化 程序 面向对象面向对象 - 基于原型(prototype)(例如 Java 脚本)功能性(例如 Haskell)面向逻辑(例如 Prolog)元(如果是它自己的纯概念?)基于堆栈(例如 Forth)基于数学/面向数组(例如 APL)声明性 连接(例如 PostScript) (绝对不完整的列表...)其次,为了更好地理解这些概念,最自然、最纯粹基于/实现其核心概念的编程语言是什么?
例如,Java 是 OO,但它不是一个很好的例子,因为由于原子,它不是纯 OO。 Lisp 是一种众所周知的函数式语言,但它是多范式的,所以它不是纯粹的。但是 Lisp 可能是“基于列表”的纯粹实现(如果它算作概念的话)。 是否存在结构化(没有 GOTO)但不是程序性的语言? (可能是 XSLT v1.x)
您在这里寻找的术语是“编程范式”,有 a whole lot of them在那里。您可以从该 Wikipedia 页面及其后续链接中获取支持每种语言的列表。
对于其中任何一个的“纯”演绎,这更难,因为它取决于您正在寻找的纯度水平。
对于纯结构化(在此处对“纯”的任何足够松散的定义),您可以查看,例如,Modula-2 . 对于纯面向对象,您主要查看 Smalltalk如果您绝对希望对所有内容进行统一处理(在最常见的定义下实际上不是必需的!),或者您正在查看像 Java 这样的语言和 Eiffel如果您接受该标题下的原始类型。 对于功能,您最有可能查看 Haskell . 对于逻辑编程,原型(prototype)语言是 Prolog ,但它并不是真正纯粹的。我所知道的唯一(大部分)纯逻辑语言是 Mercury ,并且仅当您将其功能 block 视为与其逻辑 block 基本兼容时。 ...等等等等。你明白了。