【发布时间】:2011-05-04 04:31:51
【问题描述】:
我不是语言专家,但我最近开始研究语言并试图了解主要概念和“他们的”语言。这类似于another question about books。那么首先,主要的编程语言概念是什么,例如
- 结构化
- 程序
- 面向对象
- 面向对象 - 基于原型(例如 Java Script)
- 功能性(例如 Haskell)
- 面向逻辑(例如 Prolog)
- 元(如果是它自己的纯概念?)
- 基于堆栈(例如 Forth)
- 基于数学/面向数组(例如 APL)
- 声明性
- 连接(例如 PostScript)
- (绝对不完整的列表...)
其次,为了更好地理解这些概念,最自然、最纯粹的基于/实现其核心概念的编程语言是什么?
- 例如 Java 是 OO,但这不是一个很好的例子,因为它不是纯 OO,因为原子。
- Lisp 是一种众所周知的函数式语言,但它是多范式的,所以它不是纯粹的。但 Lisp 可能是“基于列表”的纯粹实现(如果它算作概念的话)。
- 是否存在结构化(无 GOTO)但不是程序化的语言? (可能是 XSLT v1.x)
【问题讨论】:
-
Smalltalk 不是原型。自我是。此外,上面的许多“概念”不是正交的。人们必须将每种语言的特定方面相互比较(即使上面的术语也可能会根据上下文/语言改变含义)。 SQL 也是“面向集合的”(但一种“声明式查询语言”),而不是面向表的 :-)
-
@pst 谢谢,我删除了错误的例子。
-
顺便说一句,感谢您没有选择 Java 作为主要的 OO 示例。
标签: programming-languages paradigms