使用自然语言编程实际上是在工作

我喜欢电脑语言。事实上,我花了大约一半的生命培养一种特别丰富的计算机语言:Mathematica

但是我们真的需要计算机语言来告诉我们的计算机该做什么吗?为什么我们不能使用自然的人类语言,比如英语呢?

如果你几年前问我,我会说这是没有希望的。也许我们可以制作一些玩具样例,但最终自然语言无法完成创建有用程序的任务。

但是后来Wolfram | Alpha.我们已经能够让自由形式的语言学比我想象的要好得多。

但仍然,在Wolfram | Alpha输入基本上只是设置为请求知识和Wolfram | Alpha通过计算和呈现所要求的任何知识来响应。但编程是不同的。它不是关于生成静态知识,而是关于生成可以采用一系列输入的程序,并动态执行操作。

第一个问题是:我们应该如何表示这些程序?

原则上,我们几乎可以使用任何编程语言。但为了使事情变得实际,特别是在开始阶段,我们需要一种具有几个关键特征的编程语言。

最重要的是,用户可以使用短片刻指定用户的程序通常必须在计算机语言中短且可读。因为否则,用户将无法轻易地告诉 - 是否正在制作的程序实际执行他们想要的程序。

另一个与此相关的标准是,必须允许任意的程序片段独立存在——这样大型程序就可以实际地以增量的方式构建,就像自然语言中的描述是由句子之类的语句以增量的方式构建一样。

好的,要获得这些特性中的第一个,需要一种非常高级的语言,在这种语言中已经有许多内置的构造,并且设计得足够好,它们都可以在没有混乱的“粘合”代码的情况下组合在一起。

而要得到第二个特征本质上需要一种符号语言,在这种语言中,任何程序的任何部分都是有意义的符号表达式。

好吧,很方便,有一种语言很好地满足了这两个要求:Mathematica!

Wolfram | Alpha的语言能力让人想到,人们可能能够理解程序的自由形式自然语言规范。Mathematica这让人想到,自然语言自动生成的程序可能有一个合理的目标。

对我来说,还有第三个激励性的想法来自于我的工作一种新科学(NKS)。有人可能会认为,执行任何类型的复杂任务都需要一个复杂的程序。但我从中学到了什么一种新科学简单的程序通常可以做非常复杂的事情。

这样做的结果是,通常可以通过在可能的程序的计算空间中搜索它们来找到有用的程序——在Wolfram|Alpha和Wolfram的实际开发中,我们越来越频繁地使用这种技术Mathematica

这让我想到,即使其他方法都失败了,人们也可以通过搜索自然语言来“合成”程序。

好吧,我们有理由希望使用自然语言输入来编程是可能的。

但一个实际上可以做到它吗?

即使Wolfram | Alpha发射时,我仍然不确定。但当我们把Wolfram | Alpha和Mathematica,我变得越来越乐观。

昨天,随着Mathematica我们已经推出了第一个产品样品。这当然不是故事的结局,但我认为这是一个很好的开始。即使作为专家我也知道这一点Mathematica程序员,我已经在编写程序中常规使用自然语言输入进行某些步骤。

我发现几个例子在我昨天发的关于自由格式的语言学Mathematica. 下面是另一个例子:

conesphere_1

下面是一个涉及列表的示例:

列表的例子

下面是一些使用来自Wolfram|Alpha的数据的例子:

明星序列

人们也可以用自然语言指定计划,适用于一件事在构建Mathematica.而在Mathematica会话时,可以抛弃自然语言,只通过单击生成的代码使用生成的代码。

当然,现在有很多问题,例如关于消除歧义。但好消息是,我们已经有了解决这些问题的方案,我们已经在Wolfram|Alpha中测试得很好。

我不得不说,我认为一个大问题是自然语言的模糊性。一种特定的自然语言输入可能同样适用于许多不同的精确程序。

我曾经设想过,为用户生成测试示例,以便在不同的可能程序中进行选择,这将是一件例行公事。

但在现实中,这似乎是相当罕见的:通常有一个“明显的”解释,即在典型的Wolfram|Alpha风格中,人们可以把不太明显的解释放在首位,单击即可。

那么,这一切的效果如何呢?我们已经构建了程序功能的一些特定领域,随着时间的推移,我们将逐步构建更多的功能。

它们主要是用来工作的Mathematica. 但实际上,你可以在Wolfram | Alpha网站上以某种形式看到它们中的大多数,尽管显然没有引用变量或其他部分Mathematica会话可以使用。

谐波平均过滤器

它有多强大?它肯定是可用的,但我肯定希望它更健壮——我们将朝着这个方向努力。

我们面临的一个问题是该地区缺乏语言语料库。我们已经搜索了几十年我们自己的技术支持日志,以及许多编程论坛,试图找到与精确程序匹配的自然语言描述。但我们还不能像在Wolfram | Alpha的“语言发现”的许多其他领域一样,在这个过程中应用自动过滤。

这里有迷人的研究项目不计其数搞清楚通用语法指定不同类型的编程天然结构做语言,我会期待看到的询问这一领域的发展。

但从昨天开始,我们现在有了一个重要的新数据源:自然语言编程的实际例子Mathematica8.现在看看我们针对Wolfram | Alpha服务器基础设施的实时监控系统,我可以看到很快我们就会有大量数据需要研究。

自然语言编程能走多远?甚至在六个月前,我还以为只可能做一些相当简单的例子。但看到我们实际能够建造什么,我对可能的情况非常乐观。

希望是最终的,只需要用自然语言描述一个人的程序 - 然后实现这一目标的实际计划将被综合。有时这将直接可以理解目标的规范。有时要创建必要的程序将需要整个程序创建过程 - 可能往往涉及在可能的节目的空间中搜索适当的程序,NKS样式。

为了能够得到最简单、最易读(也许是最高效)的程序,并且满足给定的要求,程序简化(再次通过程序搜索实现)是很重要的。

在这一点上,我仍然关心多少这将有可能在几秒钟的“互动时代”。但是,如果历史是一个导向,具有良好的算法和启发,和大规模并行健康的剂量,它会逐渐成为可能得到的次数。

那么结果会是什么呢?我预计自然语言编程最终将成为一种无处不在的告诉计算机该做什么的方式。人们将能够开始做类似于编程的任务,而不必学习任何官方的“编程”和编程语言:他们只需与计算机交谈,就像与其他人交谈一样。

编程语言将会发生什么?事实上,我认为它们会比以往任何时候都更加引人注目和广为人知。因为在自然语言编程接口中,人们可能会看到正在合成的编程语言代码。

人们会看到这一点,并逐渐了解到,直接输入这样的代码会更快、更精确,而不需要使用自然语言。

顺便说一下,在Mathematica我们开始有代码生成功能低层次的语言,如C。所以这将是技术上可以去从自然语言输入到像C.一路而对于一些实际的目的,尤其是嵌入式系统,that'll无疑是非常有用的。

但是,当涉及到在自然语言编程的同时进行传统编程时,拥有一种简洁易读的编程语言将是一个巨大的优势Mathematica

用自由形式的语言学Mathematica我们正处在长途旅行的第一步。但我现在有信心我们可以踏上这段旅程。经过这么多年,科幻小说中的概念——能够用普通的人类语言告诉计算机该做什么——正逐渐成为现实,它与高级计算机语言所取得的成就惊人地共存。

50条评论

  1. 自然语言界面令人印象深刻。展望未来,我的一个担忧是可重复性。由于Wolfram不断修改自然语言处理引擎,今天的查询在明天执行时可能会产生不同的结果(可能更好,也可能更糟)。这可能意味着这种技术最适合临时使用,而不是存储的具有较长生存期的“程序”。

    • 我们的最后一个自由形式的输入设计似乎(我希望)很“明显”和简单。但也有很多的问题,通过来它,我们去和重复性肯定是其中之一。我们并不确切地知道人们将如何使用自由形式的输入能力。我认为这将是常见的人使用它“特设”,你的建议......,只是点击Mathematica代码和吹走他们的原始输入。同样的情况是,如果你重新评估一个细胞,其中自由形式和Mathematica输入是存在的Mathematica默认情况下不会重新运行解释,而只使用Mathematica已经存在的输入。我必须承认我对这种行为有点紧张……但它会增加健壮性和可重复性……尽管代价是有时不能做人们期望的事情。谢谢你的评论!

      新利app怎么样
  2. 我希望有一个比简单的“辉煌”更好、更恰当的词,但这是我能想到的最好的词。
    我的问题是,这是否会让事情变得更容易,至少一开始是这样。肯定会发生的错误将会大量增加,谁知道修复这些问题有多容易……也许人类语言与传统计算机语言的混合是最好的…?
    无论哪种方式,都很有趣,我们都渴望看到这样的结果。

    乔治
  3. 我等不及Mathematica执行Sol LeWitt的指令了。

  4. 斯蒂芬,你说得对。这是计算领域的下一个前沿。
    例如,它将使搜索变得更好。
    奇怪的是,谷歌似乎对智能搜索不感兴趣。

    莱托
  5. 是一个沉浸在Mathematica的人的语言为“我的一生,”语言被映射到Mathematica,真的是“自然”?其中一些示例似乎对Mathematica内置运营商的传统英语单词似乎非常遥远......非常语言Mathematica AficionAdos可能已经在读出良好的Mathematica时使用。

    杰克Repenning
  6. 语言无法描述这一切是多么令人惊叹的前瞻性。就像Alan Kay说的“简单的事情应该是简单的,复杂的事情应该是可能的”。继续努力,沃尔姆先生!

  7. 对于计算机编程来说,自然语言不够精确或定义不够明确,这就需要明确无误的独特符号,甚至严格的空白模式。让我们继续发展我们的人工智能思维,比如http://AiMind-i.com然后教人工智能的头脑如何用传统的方式编程。

    薄荷糖
  8. 这是向前迈出的一大步,而且早该如此。今天现成的台式计算机的计算能力使得自然语言处理非常可行——只要有人足够努力。对我来说,似乎大多数公司从早期就轻易放弃了人工智能的梦想。感谢Wolfram/Alpha的努力!

  9. @Brad:“当明天执行时,今天的查询可能会产生不同的结果(可能更好,也可能更差)。这可能意味着这种技术最适合临时使用,而不适合具有更长生命周期的存储“程序”

    这是一个合理的担忧。我认为这种方法适用于存储程序,最初使用自然语言创建程序,但随后程序将以正式语言存储。

    使用自然语言来编写大量代码将是一个很大的改进。写一个自然短语比尝试记住所需的关键字要容易得多。

    我希望IDE允许我同时使用自然语言和形式语言,并可以在工作时将自然语言语句转换为形式语言。

  10. 你有没有看过Anders Hejlsberg图书馆帕斯卡尔?非常自然的语言,以及繁重的抽象清单概念。

    为什么帕斯卡是唯一想出了适当的分配运营商的语言?

    希望一切都好!

    • 嗨,杰森,

      你能沿着一些链接或指针传递给你所指的作品吗?

      最好的
      斯蒂芬妮·普拉瑟
      沃尔夫勒姆研究

      斯蒂芬妮·普拉瑟
  11. 你好,

    也许我不明白:

    http://www.wolframalpha.com/input/?i=print++主+数字+介于+0+和+20之间

    不工作,

    http://www.wolframalpha.com/input/?i=print+++数字+介于+0+和+20之间

    不管用…

  12. 迷人的!

    所有的实施例中给出,除非施加一个简单的数据库查询(行星质量),并且应用滤波器来的图像的例子中,是的例子“声明”。

    imho说,这将变得有趣和有用的地方在于,当您可以在大型数据库上进行假设模拟,或是类似于“考虑到我需要在18日下午6点到达波士顿,两天后下午4点到达芝加哥市中心,并且需要将酒店账单保持在每晚150美元以下,什么样的航班和酒店预订才是最佳选择?”

    在我去铃声的时候对不起。

    问:

    卡西莫多
  13. 这是我老说的话。

    人工智能和自然语言编程是完全相同的挑战。几乎我们和真正的人工智能之间的所有障碍都可以直接归因于我们在计算机编程时使用的过于简单的语言。除非我们有一种计算机语言,它的操作符是“一般”、“经常”、“可能”、“糟糕”、“出色”,否则我们永远无法实现智能。这是必要条件,而这一点从未被承认过。

    语言障碍,这是智慧的真实表达。

    西蒙
  14. 你好,斯蒂芬。我为我的机器人设计了一种嵌入式语言,叫做RoboForth——是的,我肯定你知道Forth,并把它当作化石。mathematica的问题是它对于嵌入式系统来说太大了。但它似乎符合你的第一和第二标准。我不会冒昧地与你们令人惊叹的系统进行比较,但我正在四处寻找意见。我不想浪费你们的时间但是最快的概述可能在这里http://www.strobotics.com/manuals/primer7.pdf. 我发现自己处于两种力量之间——C的力量轻蔑地看待Roboforth,而真正的、通常是非技术用户的力量要求简单或至少是软启动。

  15. 斯蒂芬,伟大的工作。期待它的发展和可用性,谢谢

  16. 真是太棒了;这改变了程序员和遗传算法的世界…

    L.M.教授
  17. 呵呵,是的,除了编写一个没有bug的、格式良好的程序外,还需要像律师一样与你的计算机交谈。

    对于特别的脚本编写和查询非常有用。

    丽Miyasaka
  18. 令人兴奋的工作和令人难以置信的前瞻性思考,但是示例指向大跨栏理解和使用变量声明。如果自然语言编程背后的概念是使群众可以访问,那么优雅和可理解的处理变量方式将是必须的。上面列表示例中的“t”的抽象概念将抛出许多不处理替代的想法。

    史蒂芬
  19. 作为一名与残疾人打交道的技术专家,这种可能性确实令人惊叹。
    我可以看到一个四肢瘫痪的人能够为他自己的设备编程,帮助他交流或控制帮助他与物理世界互动的设备。
    惊人的!

  20. 随着低级代码生成能力的不断增强,我可以看到未来在Mathematica中使用即席查询的可能性,直到查询开始生成预期的数据类型,然后通过代码生成“锁定”该结构。如果以后代码生成有所改进,那么可以选择返回到上一个工作查询并重新生成,以查看生成的代码是否比前一个更快/更好。

    我想知道,作为对Brad Rubin的回应,是否有一种类似于“锁定”自然查询(或生成的代码)与WolframAlpha引擎接口的方式,即用一种不太“自然”的语言指定条件方法,但以更具表现力的方式,因此,为了重复搜索的目的,今天的歧义词可以以始终返回相同数据的方式消除歧义。这样,如果歧义词返回基于今天“明显”的结果如果明天的解释变得不那么明显,那么为了获得一致的数据访问,可以以稍微不太自然的方式对解释进行固定。

  21. 我希望看到这是一个互补的方向。也就是说,如果Mathematica能够注意到用户在摸索中失败,并提出一些可能帮助他们实现目标的代码,那就太好了。

    这可能是一个艰难的问题。

  22. 还有另一种推动力,鼓励自然语言编程,除非你从腕隧道和长期规划的相关职业病危害遭受可能不是很明显。也就是说,语音识别已经在自己的计算能力有了长足的进步和这两者的一样,对运行严重更好的硬件的利益重要。

    遗憾的是,语音识别还没有取得任何类似于“语音编程”的进步,因为语法上下文太少了。今天最好的语音识别系统使用“最佳猜测”和智能交互纠正界面,以使事情正确无误。

    鉴于Stephen在这一领域的丰富和长期经验,我可以很容易地想象一个“支持语音的自然语言IDE”,它可以与开发人员一起捕获和完善预期的输入。我们需要这样的东西吗?这是一种不必要的“解决方案寻找问题”的飞行吗?我认为不是。我知道有很多人和我一样,而且在未来的岁月里还会有更多的人,在手指寿命不如大脑寿命长的情况下努力工作。

  23. 这太棒了,但希望它不会让我这个软件工程师失业:)无论如何,这是一项伟大的工作,当它完全开发出来后,将其连接到带有语音识别的IDE。

    马特
  24. 有趣的是,但最终我相信它的无果而终。与一般的编程语言的问题不在于他们是如何表达,但所需要的思维方式,使计算机程序在所有的工作。它是人们觉得很难的概念得到正确,而不是语言来表达它..我根本就没有看到任何单一的表达机制得到解决。对于我一个“更好的语言”的追求似乎总是一个追求“简化概念不能简化” ..做这样的堂吉诃德式的任务。我想你最好的。

    请注意。。我是一名非常资深的程序员,从20世纪70年代起就一直在做这项工作。。我不是一个懒散的观察者,我是一个长期演员。

    rk
  25. 我都等不及电脑也能有这样的界面了,包括语音识别系统!
    这将使计算机编程普及到每个人,而不仅仅是那些疯狂/聪明到“……使它成为现实”的人。我计划,这将使编程MMOFPRPGs如此诱人,而设置的所有背景的东西和查询程序员诸如:属性名称和统计,灾害扑救,发展水平,聊天系统,MySQL或Lua脚本系统,服务器/位置的地方,和其他相关信息。这将使我的喜欢更容易!
    继续努力!

    Rob Mussell
  26. 我在建立业务应用程序方面思考这一点,我今天可以看到这一点在像Java或C#这样的主流商务语言之上。

    自然语言处理,可以搞一个背景下携带对话与业务分析师VS几秒钟的“互动时代”,可以建立一个所需的系统的模型,与用户对话来填补孔和/或验证的假设,然后产生输出,可以在最低限度,是为程序员的起点。鉴于绝大多数在绝大多数的LOB应用程序的内容是相同的严重回收技术,这应该是立即可行的。

    特里·默里
  27. 这是一篇有趣的文章。我期待着在Mathematica 8中玩这个。不久前,我在同一个主题上编程了一些东西

    泽万
  28. 我个人不得不说,我不是非常相信用自然语言指定进程或程序的方式。自然语言如此流畅和依赖情况下,我看不出它是在不久的将来一个可计算的问题。例如Wolfram Alpha的似乎是使用某种形式的命名实体识别来执行它的计算,但不会出现使用环境。如果你问到“计算皮”它给你的pi的数值,但如果你问它“计算直径的比例,以一个圆的周长”,那么它只是告诉你一个圆的周长。你可以回头,并说好,如果你提出这个问题的正确方式,那么你将得到正确的答案,但那么你是从自然语言踏步而去为正式语言,也可以同样是一种编程语言。

    尼尔。
    • 你好,尼尔,

      感谢您的评论!这是一个错误,我们已经给我们的公司内部相应的组通过了它。我们将让你知道一旦这已得到解决。

      谢谢,
      斯蒂芬妮·普拉瑟
      沃尔夫勒姆研究

      斯蒂芬妮·普拉瑟
  29. 这是一门有趣的语言。几点意见。
    我想"从t中移除0 "应该是从t中移除0而不是产生一个删除0的t列表。一个非程序员可能会忽略的区别是:它是否足够聪明,能够计算出“删除0的list”的程序语言?
    它是否已经发展到“从t中去掉0和- 3”的程度?
    它是凭空选择变量名“t”,还是在开始时修改生成的语言以设置“t”?
    它仍然需要某些知识水平,就像我要求大量的时候,我在kg或lbm中寻求答案?即使我说“使用科学措施”也有一些歧义,因为如果我要求长度并获得10,那么这是否意味着杀手,米或......

  30. 奇怪的是,你似乎从来没有把Mathematica脚本和carl sassenrath的Rebol脚本联系起来
    在人这些年htats一种耻辱。

    http://twitter.com/rebol3

    http://www.google.co.uk/search?aq=0&oq=carl+sas&sourceid=chrome&ie=UTF-8&q=carl+sassenrath

  31. 我看到世界的非本地集群rebol tcp: ip / UDP实例创建简单的多播隧道国米过程数学脚本之间的通信和rebol GUI / HTML脚本实例解析很多机器代码优化最佳SIMD路径和更多的在现实世界中如果你写和colaberate彼此一个更好的方法,只是做它,并尽快使那些RebolMathematica API库扩展和世界示例GUI等

  32. 我想知道它能有多好。当我们互相说“画一个半透明的球体和一个红色的圆锥体”时,有许多有效的输出。有时在转换后的输入会缩小有效输出的数量,例如:“顺便说一下,球体应该离圆锥体约1米远”。有时还需要电脑思考,“我想要一个60年代字体风格的文本,上面写着‘Groovy’”和“把圆锥体稍微往左移一点”。

    JM
  33. 已经有好几年,我想(和开发翻译算法,有助于实现这一目标),如何分辨的具体要求,如伪代码,或只是目标的形式输入程序和它们所产生的完整的产品。这是毫无疑问的,可行的。
    其中一位说:“说明词义的词典有一个单词,但我想写一本词典,说明用于一个意思的单词。”。我认为这个制度应该做到这一点。
    我一直在想;人们会像对待彼此一样欺骗体制吗?
    期待听到新的改进。祝贺你,并致以最良好的问候。

    穆萨核仁
  34. 我就是喜欢!这是编程语言的一大飞跃。

  35. 毫无疑问,我认为Mathematica完全整合不良贷款只是时间问题。如果我们从编程语言的大局出发,考察像C#这样的语言的发展,我们会发现有一种趋势使程序员的工作更容易,代码更直观,展望未来,NPL将是最终(也是完美的)方法。

    在我看来,预编译器的发展应该能够解决消除歧义的问题,但与此同时,如果能够使用AI对话系统作为消除歧义的触发器,那该多棒啊!

    何塞·a·帕尔多
  36. 看看applescript

    布拉布拉
  37. 你越是解释自然语言中的复杂之处,它就越倾向于计算机语言。

    丹Oyuga
  38. 我认为一个成功的组合可能是使用Groovy对领域特定语言(dsl)[1]的支持和这种自然语言功能。Groovy已经满足了目标计算机语言的一些要求,即简洁和高级结构。再加上语音转换文本,你就真的有东西了!

    -马修
    [1]:http://docs.codehaus.org/display/GROOVY/Writing+Domain-Specific+Languages

  39. 干得好。
    但除非我们也愿意接受人工无知,否则我们不会有人工智能。

    斯托什
  40. 伟大的
    优秀

    埃尔方
  41. 模式识别和响应机制启发式需要合并到下面的输出模型中。并不是所有的输入都能提供必要的刺激来产生输出。算法首先需要检测所问的问题是否纯粹,即是否有一个绝对的答案,如果不是,那么需要进一步的输入来吸收充分的响应。更重要的是,为了得到适当的答复,还需要提出哪些进一步的问题。

    例如,想想马格努斯·卡尔森是如何下国际象棋的——是通过蛮力组合推理来确定基于有限输入的最佳答案输出,还是通过基于一系列附加输入-输出、输入-输出等场景的直觉。

    卡尔森的成功不是基于对问题有正确的答案,而是知道该问什么问题——一次又一次。

    Google搜索响应算法开始利用这种确定性的编程风格。键入字母't' - 潜在响应xxx - 键入下一个字母'r' - 潜在响应yyy。谷歌已经积累了一个问题答案的数据库 - 输入 - 输出然后用作变量来提出最佳答案。

    我想我想说的是,如果我的问题/输入是吸引我5个球?
    响应/输出不应该是一张有5个球的图片,而应该是另一个问题
    你想要球有多大?你想要绘制的球吗?等等…

    如果在同一问题的多个场景被问到之后,一个模式的答案开始形成,随后的问题-然后画我5个球变成画我5个球的大小是X,我们的位置是Y。

    如果单词球由方形或数字5替换为6,则还需要成为将这些方案连接到集体输入的方法,即所有可能共享相同的输出。一旦数据库填充了突出的输入输出,就可以开始制定启发式响应机制。

  42. 用自然语言(可能是英语)编程听起来很棒,但实际可行吗?
    像ADA这样的高级编程语言可能比英语句子更具可读性。

    自然语言的完整语法太大了,编译器无法处理。同时,
    通常,自然语言句子含糊不清。
    高水平的计算机编程语言可以被看作是一种自然语言的一个子集。

    如果不学习计算机编程语言,文学作家就永远不会成为计算机程序员。

    折腾
  43. 致Neil和Stephen:
    对于自然语言编程来说,每个单词的含义必须是唯一的。这就需要创造一个清晰的英语版本。因此,不要放弃它。这不是一件小事。
    创建w| A字典。这包含了所有的定义。无论如何,这都是需要的。我不期望Wolfram做这项工作,只是招募现有的出版商。
    策展:仅使用已策展的词语进行定义。
    如果一个词有多个定义,那么这些定义必须通过W | a内部加后缀或类似的方式加以区分。
    如果一个单词可以用一种以上的语法形式,那么它的语法形式也必须通过后缀来表示。
    使用
    输入您的问题,但不要按enter键。
    将鼠标放在第一个单词上。
    将会出现一个包含不同含义/假设的下拉列表。
    通常,第一个将是可以的,并且您继续前进,否则您选择了首选定义。
    W | A的输出将采用同样的想法,以显示在输出的每一个字背后的想法。
    Brian Gilbert, W|志愿者策展人

    布莱恩•吉尔伯特
  44. 这是非常有趣的和Wolfram Alpha是美妙的。我用它做过很多事情。
    唯一的问题是,当我试图给我6个4个1到12之间等于26的数字组合时,它失败得很惨。

    吉姆·德莱尼
  45. 它遵循以下要求: -
    1.Mathematica/WA必须包括每个被接受为输入的单词的可计算定义。可通过后缀数字区分的替代含义。当前的“假设”算法将帮助用户进行输入。输出必须指明后缀可能应用的替代含义。用户可以单击带后缀的单词,请参见相应的定义。
    2.用户友好的Mathematica代码形式必须对用户可用。这类似于语法正确的英语,但没有歧义。它将取代目前的“可复制明文”,但将处理整个Mathematica程序,而不仅仅是一行。用户可以使用这个Mathematica语法器来编写Mathematica程序。

  46. 很抱歉的晚评论。

    很好。

    机器应该推断的意义和把握上下文。

    提示详细信息。

    并映射到刚性程序。

    我们现在在面向对象编程中看到的,是一种误入歧途的混乱,即使是最好的程序员也很难使用和阅读的应用程序。因为每个应用程序都发明自己的语言。随意使用新单词和字母组合。更糟糕的是,面向对象编程创建了一个与现实世界分离的不熟悉事物的完整宇宙,然后使用新词汇来描述这些新事物的新抽象过程。

    这不是编程的进步。这是一种离题,一种退化。

    理查德。
Baidu