有哪些不同的编程语言概念以及哪些语言以纯粹的方式显示它们

Pet*_*ler 5 paradigms programming-languages

我不是语言专家,但我最近学习语言并试图概述主要概念和"他们的"语言.这类似于关于书籍的另一个问题.首先,主要的编程语言概念是什么,例如

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

和第二获得的这些概念的好crasp,这将是这是基于/最自然纯净执行其核心理念的编程语言?

  • 例如,Java是OO,但它不是一个很好的例子,因为原子不是纯粹的OO.
  • Lisp是一种已知的功能语言,但它是多范式的,所以它不是纯粹的.但Lisp可能是"基于列表"的纯粹实现(如果它算作概念).
  • 是否有一种结构化的语言(没有GOTO)但不是程序性的?(也许是XSLT v1.x)

JUS*_*ION 8

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

对于任何这些的"纯粹"再现,这更难,因为它取决于你正在寻找什么样的纯度.

  • 对于纯粹的结构化(在这里"纯粹"的任何足够宽松的定义),你可以看看,例如,在Modula-2.
  • 对于纯粹的面向对象,如果你想要一致地处理所有事情(在最常见的定义下并不是必需的话),那么你主要关注Smalltalk及其类似的东西!或者你正在寻找像JavaEiffel这样的语言接受该标题下的原始类型.
  • 对于功能而言,你最有可能在Haskell看.
  • 对于逻辑编程而言,原型语言是Prolog,但它并不是纯粹的.我所知道的唯一(大部分)纯逻辑语言是Mercury,只有当你将其功能块视为与其逻辑块基本兼容时才是这样.

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


Pet*_*ler 0

感谢我的正确意见的回答,我被指出了正确的方向。我将给出到目前为止我发现的范式列表及其纯语言:

  • 至关重要的
    • 非结构化——早期的BASIC、汇编
    • 结构化的 - - ?
    • 程序性的——?
    • 模块化 --- Modula-2,也许是 Pascal
    • 面向对象
      • 基于类的---Smalltalk
      • 基于原型 --- Self,也许是 Java Script,Lua
  • 声明性 --- SQL、正则表达式、CSS
    • 逻辑 --- Mercury,也许是 Prolog
    • 函数式 --- 方案、Haskell
      • 默认/无点
        • 连接词 --- 乔伊、猫

在不同的“轴”上我们有

  • 标量 --- 其中大多数
  • 数组---APL

不知道该放在哪里:

  • 基于堆栈 --- Forth,Postscript