5

我不是语言专家,但我最近开始研究语言并试图了解主要概念和“他们的”语言。这类似于关于书籍的另一个问题。那么首先,主要的编程语言概念是什么,例如

  • 结构化的
  • 程序
  • 面向对象
  • 面向对象 - 基于原型(例如 Java Script)
  • 函数式(例如 Haskell)
  • 面向逻辑的(例如 Prolog)
  • 元(如果它是一个纯粹的概念?)
  • 基于堆栈(例如 Forth)
  • 基于数学/面向数组(例如 APL)
  • 声明性的
  • 连接(例如 PostScript)
  • (绝对不完整的清单...)

其次,为了更好地理解这些概念,最自然、最纯粹基于/实现其核心概念的编程语言是什么?

  • 例如,Java 是 OO,但它不是一个很好的例子,因为由于原子,它不是纯 OO。
  • Lisp 是一种众所周知的函数式语言,但它是多范式的,所以它不是纯粹的。但是 Lisp 可能是“基于列表”的纯粹实现(如果它算作概念的话)。
  • 是否存在结构化(没有 GOTO)但不是程序性的语言?(可能是 XSLT v1.x)
4

3 回答 3

8

您在这里寻找的术语是“编程范式”,其中有很多。您可以从该 Wikipedia 页面及其后续链接中获取支持每种语言的列表。

对于其中任何一个的“纯”演绎,这更难,因为它取决于您正在寻找的纯度水平。

  • 对于纯结构化(在此处对“纯”的任何足够松散的定义),您可以查看例如Modula-2
  • 对于纯面向对象,如果您绝对希望对所有内容进行统一处理(在最常见的定义下实际上不是必需的!),那么您主要关注Smalltalk及其同类语言,或者如果您愿意,您正在关注JavaEiffel等语言接受该标题下的原始类型。
  • 对于功能,您最有可能在Haskell上寻找。
  • 对于逻辑编程,原型语言是Prolog,但它并不是真正纯粹的。我所知道的唯一(大部分)纯逻辑语言是Mercury,并且只有当您将其功能块视为与其逻辑块基本兼容时。

...等等等等。你明白了。

于 2010-11-03T07:11:50.410 回答
2

我认为 Pascal 是规范的程序语言。

我还认为 Lisp(讽刺的是不是 ML)是规范的“元”语言。

一方面,宏是一个程序片段,它修改代表程序片段的数据结构——因此您可以使用语言来调整语言。其次,编写自托管解释器(传统上称为元循环评估器)被认为是一种常见的做法:它们是编写并运行它们的程序。

当然,任何其他语言都可以做到这一点。在 Python 中,您可以访问 python 编译器,而 PyPy 是 python 中的 python 实现。但我认为,Lisp 拥有这样做的最强大的传统。

但我是一个 Lisp 局外人,所以我知道什么......'希望这有帮助 ;-)

于 2010-11-18T12:18:04.190 回答
0

感谢JUST MY correct OPINION的回答,我被指出了正确的方向。据我所知,我将列出范式及其纯语言:

  • 至关重要的
    • 非结构化 --- 早期的 BASIC、Assembly
    • 结构化的 - - ?
    • 程序——?
    • 模块化 --- Modula-2,也许是 Pascal
    • 面向对象
      • 基于类 --- Smalltalk
      • 基于原型 --- Self,也许是 Java Script,Lua
  • 声明式 --- SQL、正则表达式、CSS
    • 逻辑 --- Mercury,也许是 Prolog
    • 功能 --- 方案,Haskell
      • 默契/无点
        • 串联 --- Joy, Cat

在不同的“轴”上,我们有

  • 标量——大部分
  • 数组 --- APL

不知道放在哪里:

  • 基于堆栈 --- Forth, Postscript
于 2011-01-14T21:18:58.003 回答