代码之家  ›  专栏  ›  技术社区  ›  Jon Smock

定义问题而不是解决方案的编程语言?

  •  22
  • Jon Smock  · 技术社区  · 16 年前

    是否有任何编程语言设计用于定义给定问题的解决方案,而不是定义解决该问题的指令?因此,我们将定义解决方案或最终结果应该是什么样子,语言解释器将确定如何获得该结果。看着 list of programming languages ,我甚至不知道如何开始研究这个。

    13 回复  |  直到 16 年前
        1
  •  30
  •   Karl Voigtland    16 年前

    那么...怎么样 Declarative Programming ? 摘自维基百科的文章(重点补充):

    在计算机科学中,陈述式的 编程是一种编程范式 表达一个逻辑 不描述其性质的计算 控制流 将此样式应用于 通过以下方法尽量减少或消除副作用: 描述程序应该做什么 着手完成它 . 这 与命令相反

        2
  •  14
  •   Savvas Dalkitsis    16 年前

    最接近这种语言的是逻辑语言,比如Prolog。在这些语言中,您可以对问题的逻辑进行建模,但同样,这不是魔术。

        3
  •  12
  •   Thomas    13 年前

    这听起来像是对声明性语言(特别是逻辑编程语言)的描述,其中最著名的例子是Prolog。不过,我不知道Prolog是否可以并行化。

    根据我的经验,Prolog非常适合解决约束满足问题(其中有一组必须满足的条件)——定义输入集,定义约束(例如,必须对以前无序的输入进行排序)——但病理情况是可能的,有时逻辑推理过程需要很长时间才能完成。

    here 他们是一群人。

        4
  •  5
  •   Ionuț G. Stan    16 年前

    这些语言通常被称为 5th generation programming languages . 我链接到的维基百科条目中有几个例子。

        5
  •  4
  •   nightingale2k1    16 年前

    让我试着回答。。。可能是 Prolog 可以满足你的需要。

        6
  •  2
  •   Thomas    13 年前

        7
  •  1
  •   Gordon Potter    16 年前

    这似乎有些轻率,但从某种意义上说,这就是stackoverflow。您声明了一个问题和/或预期结果,社区通常以代码形式提供解决方案。

    将动态开放系统模型化为有限数量的解似乎非常困难。我认为大多数编程语言都是必需的,这是有原因的。更不用说有大量的P=NP问题潜伏在黑暗中,这将使这样一个系统难以设计。

    大问题和软件基本上只是用代码解决的小问题的集合。因此,任何生成代码的系统都需要相当分隔的问题集,这些问题集可以映射到或多或少的原子解决方案。

        8
  •  1
  •   David Plumpton    16 年前

    口齿不清。有很多Lisp系统是根据规则而不是命令定义的。谷歌啊。。。

        9
  •  0
  •   tinyd    16 年前

    Drools 这是我玩过的游戏,看起来很有趣。

        10
  •  0
  •   Ray    16 年前

    许多语言定义的问题多于解决方案(不要把这一点当回事)。

    值得注意的是:Prolog和不同类型的DSL设计成声明性的,再投一票。

        11
  •  0
  •   quillbreaker    16 年前

    我记得在大学时读过一些关于DNA计算的书。你可以把DNA片段放在一个代表问题片段的解决方案中,并以这样的方式定义它,如果DNA组合在一起,它就是一个有效的解决方案。然后你让化学物质的特性为你解决问题,并寻找代表解决方案的成品链。这听起来有点像你所指的。

    不过,我不记得这是理论上的还是已经做过的。

        12
  •  0
  •   Jon Smock    16 年前

    LINQ也可以被认为是另一种声明性DSL(避免了它太类似于SQL的说法)。同样,您声明了解决方案的外观,LINQ决定如何找到它。

    这类语言的美妙之处在于,像PLINQ(我刚刚发现)这样的项目可以在它们周围涌现。 Check out this video with the PLINQ developers (WMV direct link)介绍了他们如何在不修改LINQ语言的情况下并行化解决方案查找(很多)。

        13
  •  0
  •   outis    16 年前

    推荐文章