我们所构建的是一种计算语言(这非常重要!)金宝博188投注

沃尔菲

Wolfram语言是什么?

我有时觉得要解释什么是沃尔夫拉姆语真的。是的,它是一种计算机语言——一种编程语言。它以一种独特的生产方式,我可以添加标准编程语言的功能。但这只是故事的一小部分。我终于意识到,人们应该把Wolfram语言看作是一种完全不同的,全新的东西:我们可以称之为a计算语言金宝博188投注

那么什么是计算语言呢?金宝博188投注它是一种以计算方式表达事物的语言,也是一种捕捉思考事物的计算方式的语言。金宝博188投注它不仅仅是一种告诉计算机该做什么的语言。它是一种语言,计算机和人类都可以用它来表示思考事物的计算方式。金宝博188投注它是一种语言,将所有事物的计算性观点具体化。金宝博188投注它是一种语言,它允许人们使用计算范式作为一个框架来制定和组织自己的思想。金宝博188投注

直到最近,我才开始正确地理解使用计算语言的真正含义有多么广泛——尽管,金宝博188投注具有讽刺意味的是,我一生的大部分时间都花在构建世界上唯一的大规模计算语言这一耗费精力的任务上。金宝博188投注

它帮助我思考一个历史类比。五百年前,如果人们想谈论数学思想和运算,他们基本上必须使用人类的自然语言,本质上就是把所有东西都用文字表达出来。但是大约400年前数学符号的发明(从+,×=、等。)改变了这一切,并开始为表达数学思想提供一个系统的结构和框架。

结果是惊人的戏剧性。因为从根本上说,正是这种发展使得现代数学思维形式(如代数和微积分)成为可能,并开启了我们对世界的数学思维方式,所有的科学技术都来自于此。

好,我认为计算语言也是一样。金宝博188投注但现在发生的是,我们得到了一种系统的方法来表达和谈论计算性的思想,金宝博188投注以及思考世界的计算方式。金宝博188投注使用标准编程语言,我们已经讨论过计算机的低级操作。但是用计算语言,金宝博188投注我们现在有一种方法可以将计算范式直接应用到几乎所有的事情上:我们有一种语言和一个符号来做计算x,金宝博188投注对于任何字段"X"(从考古学到动物学,及以后)。

有一些"数学X"有一段时间,通常,重点是用传统的数学结构(如方程)来表述事物,这样就可以“机械地”被解决(至少,说,与数学软件!)但是过去几十年的一个伟大的实现是计算范式要广泛得多:更多的可以用计算来表示,而不仅仅是用数学来表示。金宝博188投注

有时,人们处理非常简单的抽象程序(和,的确,我已经花费数年时间探索计算宇宙的科学金宝博188投注这样的程序)。但人们往往对与我们对世界的直接体验有关的操作和实体感兴趣。但这里的关键是,正如我们在构建Wolfram语言时学到的那样,可以用计算的方式表示这些东西。金宝博188投注换句话说,有可能有一种计算语言可以用计算术语来谈论世界。金宝博188投注

这就是启动所有可能的"计算X"所需要的金宝博188投注字段。

计算语言是什么样的?金宝博188投注

假设我们要讨论行星。在Wolfram语言中,行星只是象征性的实体:

实体列表
吗?

EntityList [EntityClass[“行星”,所有]]

我们可以计算它们(这里,木星的质量除以地球的质量):

木星
吗?

实体[“行星”,“木星”[质量]/实体[“行星”,“地球”)(“质量”)

让我们制作一幅图像拼贴图,其中每个行星的质量决定了它显示的大小:

ImageCollage
吗?

图片拼贴[实体类[“行星”,全部][“质量”]->实体类[“行星”,全部][“图像”]

从计算的角度来讨论现实世界,金宝博188投注你必须能够对它进行计算。喜欢这里,Wolfram语言正在计算火星的当前位置(如我所写):

火星
吗?

实体[“行星”,“火星”[entityproperty[“行星”,“HelioCoordinates”]

接下来的18个月里,它会制作一张3D图表,列出它的位置:

ListPointPlot3D
吗?

ListPointPlot3D[表[实体(“行星”,“火星”【日期】【实体属性】【行星”,“太阳坐标”],现在+数量(n,"月"]]],{n,18 } ]

再看一个例子。拍张照片,找到里面的人脸:

FacialFeatures
吗?

FacialFeatures [CloudGet (“https://wolfr.am/DpadWvjE”),“形象”)

当计算的另一个例子遇到现实世界时,我们可以做一个柱状图(比如,),当中估计年龄的人士:

柱状图
吗?

直方图[FacialFeatures [CloudGet (“https://wolfr.am/DpadWvjE”),“年龄”],{5}]

令人惊讶的是,结果是可计算的。以下是分布在“视觉特征空间”中的希腊字母的光栅化图像:

FeatureSpacePlot
吗?

FeatureSpacePlot[栅格化/ @字母表[“希腊”]]

是的,这(我认为)令人印象深刻Wolfram语言能做什么?。但更重要的是看看它如何让人指定要做什么。因为这就是计算语言在工作的地方,它给了我们一种通过计算来讨论行星、人脸和视觉特征空间的方法。金宝博188投注

当然,一旦我们用计算语言表达了一些东西,金宝博188投注我们处于这样的境地(多亏了这一切)知识库algorithmbase在Wolfram语言中)对它进行实际计算。而且,不用说,这是非常强大的。但同样非常强大的是计算语言本身给我们提供了一种用计算术语表达事物的方法。金宝博188投注

假设我们想知道罗马数字系统有多有效。我们如何计算出这个问题?金宝博188投注我们可以考虑知道罗马数字的字符串长度,并将它们与现代整数的长度进行比较。用Wolfram语言很容易表达出来。这是罗马数字:

罗马数字
吗?

RomanNumeral [188]

这是它的字符串长度:

StringLength
吗?

StringLength [RomanNumeral [188]]

这是一张罗马数字长度到200的图,除以相应的整数长度,标注自动显示显著值:

ListLinePlot
吗?

listlineplot[table[callout[stringlength[romannumber[n]]/integerlength[n],n),{n,200}]]

很容易就可以为1000以下的所有数字制作柱状图:

柱状图
吗?

柱状图(表[StringLength [RomanNumeral [n]] / IntegerLength [n],{n,1000}]]

但在实际应用中,有些数字比其他数字更常见。那么我们如何捕捉到这些呢?好,这是一种(相当幼稚的)计算方法。金宝博188投注我们来分析一下维基百科关于算术的文章,看看它提到的整数是什么。再一次,这种计算概念很容易用Wolfram语言表达:在本文中查找数字的情况,金宝博188投注然后选择那些解释为整数的:

选择
吗?

选择[IntegerQ] [TextCases [WikipediaData(“算术”),“数字”- >“解释”]

有一些大数字,用罗马数字表示“字符串长度”的概念没有多大意义:

罗马数字
吗?

RomanNumeral [7485696]

然后是0,罗马人没有明确的表象。但仅限于“罗马字符串”数字,我们可以再次制作柱状图:

柱状图
吗?

柱状图[map[stringlength[romanNumeral[]/integerlength[]&]选择[integerq[]&&0<<5000&]文本案例[wikipediadata[“almatic”],“数字”- >“解释”]]]]

最重要的是,有了Wolfram语言,我们可以用计算概念来表达我们的思想,金宝博188投注就像StringLength文本框选择柱状图。我们能够使用计算语言来表达我们的计算思维——以一种人类能够阅读的方式,金宝博188投注计算机可以从。

与编程语言的区别

实际上,我们刚刚看到的计算语言的例子看起来与通常使用标准编程语言所做的任何事情都非常不同。金宝博188投注但是计算语言和编程语言之间的根本区别是什么呢?金宝博188投注

首先,它是一种计算语言试图从本质上讲能够谈论人们可能以计算的方式思考的任何事情,而编程语言被设置为本质上只谈论人们可以直接编写计算机程序来做的事情。金宝博188投注例如,计算语言本质上可以谈论现实世界中的事物,比如行星。金宝博188投注火星纽约市或者一个巧克力曲奇条。编程语言本质上只能谈论计算机中的抽象数据结构。

不可避免的是,计算语言必须比编程语言更大、更丰富。金宝博188投注因为虽然编程语言只需要知道计算机的操作,计算语言试图了解每一件事——用尽可能多的知识和计算智能来了解这个世界,以及其中包含的计算。金宝博188投注

公平地说,Wolfram语言是唯一一个存在完整计算语言的例子。金宝博188投注但我们从中得到了一种巨大的感觉。虽然标准编程语言的核心通常内置几十个基本函数,的Wolfram语言有超过5600种-其中许多单独代表计算智能的主要部分。金宝博188投注为了能够谈论真实世界,Wolfram语言也有数百万个实体里面有各种各样的东西。而且,对,沃尔夫拉姆语已经有三十多年的活力,不断发展投入其中。

给定一种编程语言,当然,我们可以开始编程。事实上,许多标准编程语言都有各种各样的函数库。但是这些库的目标并不是真正的计算语言的目标。金宝博188投注是的,它们提供特定的“调用函数”。但他们并没有试图创造一种方法来表达或谈论广泛的计算思想。金宝博188投注要做到这一点,需要一种连贯的计算语言,就像我多年来用Wolfram语言构建的那样。金宝博188投注

编程语言(不用说)是用来编写程序的。虽然人们通常认为至少在某种程度上能够阅读程序是可取的,最终的目的是提供一种方法来告诉计算机该做什么。但是计算语言也可以实现其他功能。金宝博188投注因为它可以作为交流计算思想金宝博188投注对人类和计算机都一样。

即使处理抽象算法,在标准编程语言中,想要使用某种“伪代码”是很常见的这使得我们可以描述算法,而不必纠结于实际实现的细节(通常很繁琐)。但是计算语言的一部分思想总是有一种直接用语言表达计算思想的方法:具有伪代码的高层次的表达性和可读性,金宝博188投注虽然一切都很精确,在计算机上完成并立即执行。

看看上面的例子,有一件事是显而易见的,那就是让计算语言符号化是至关重要的。金宝博188投注在大多数标准编程语言中,x没有价值就没有任何意义;它必须代表计算机内存中的某种结构。但是在计算语言中,金宝博188投注一个人必须能够拥有纯粹象征性的东西,这代表,例如,在现实世界中,人们可以像处理任何其他类型的数据一样操作的实体。

有一连串奇妙的统一从把所有东西都表示成符号表达开始,对于能够连贯地构建完整的计算语言至关重要。金宝博188投注使计算语言尽可能容易被人类吸收,金宝博188投注还有各种详细的界面问题,比如层次结构笔记本,允许计算语言的细节金宝博188投注图标化显示,等等。

为什么不只用自然语言呢?

尤其是在这个机器学习人们可能会想,为什么人们需要一种精确定义的计算语言呢?金宝博188投注为什么不直接使用自然语言呢?

沃尔夫拉姆阿尔法提供了一个很好的例子(事实上,可能是目前最复杂的一种),完全可以用自然语言来完成。事实上,对于Wolfram Alpha通常处理的那些简短问题,它证明了自然语言可以很好地工作。

但如果有人想建立更复杂的东西呢?就像没有符号的数学一样,它很快变得不切实际。当我写一篇沃尔夫拉姆语言入门书——尝试创造练习为它。一个练习的典型形式是:“以自然语言描述的东西为例,用Wolfram语言实现。在书的开头,这个工作好。但一旦事情变得更复杂,这变得相当令人沮丧。因为我马上就知道我想用沃尔夫拉姆语说什么,但是在练习中用自然语言表达它需要付出很多努力,我的作品常常很难读懂,让人想起法律术语。

人们可以想象,有了足够的反复,人们可以用自然语言向计算机解释事物。但是为了弄清楚计算机的理解,我们需要一些更结构化的表示,这正是计算语言所提供的。金宝博188投注

Wolfram alpha的工作方式,首先是将自然语言输入翻译成精确的Wolfram语言,然后才从中计算答案,这当然不是巧合。

从某种意义上说,使用计算机语言使我们能够利用过去几个世纪的精确科学和系统知识。金宝博188投注在历史的早期,人们认为,人们可以用语言和自然语言来解释一切。但是三四世纪以前——特别是在数学符号和其他数学概念的时代——很明显,如果一个人有一个结构化的,谈论世界的正式方式。计算语言现在扩展了这一领域——将更广泛的东西带入了正式计算思维的领域,金宝博188投注超越了自然语言。

当然,尝试使用自然语言的一个理由是“每个人都已经知道了”。但关键是要能够应用计算思维——并系统地做到这一点,金宝博188投注一个人需要一种新的表达方式,这正是计算语言所提供的。金宝博188投注

计算语言如何利用自然语言金宝博188投注

计算语言与自然语言有很大的不同,金宝博188投注但在它的结构中,它仍然使用自然语言和人们对它的理解。因为在某种意义上在计算语言中都是以自然语言中的单词为基础的。金宝博188投注所以,例如,在Wolfram语言中,我们有这样的函数StringLength文本框FeatureSpacePlot

每一个函数都有一个精确的计算定义。金宝博188投注但为了帮助人们理解和记住这些功能的作用,我们使用(精心挑选)他们名字中的自然语言词。从某种意义上说,我们利用人们对自然语言的理解来创造更高层次的语言。(顺便说一下,与我们的“代码标题“机制,除了英语,我们至少还能用很多自然语言为所有东西做注解。

当涉及到计算语言必须处理的无数现实实体时,情况就稍有不同了。金宝博188投注对于像这样的函数文本框,你们俩都得知道它叫什么以及如何使用它。但对于像纽约市这样的实体来说,你只需要以某种方式抓住它,然后它就会像其他实体一样工作。要得到它的一个方便的方法就是直接要,通过不管(自然语言)叫什么名字你知道的。

例如,在Wolfram语言中,你可以使用自由格式输入框”。类型纽约它将被解释为官方纽约市实体

纽约
吗?

\ \ ! (* NamespaceBox \ [“LinguisticAssistant”,dynamicmodulebox[typeset`查询$$=“NYC”,$$ = TemplateBox[{"\"纽约市\"",RowBox[{“实体”,“(”,RowBox[{“\”城市\ ",“,”,行框[“”,行框[纽约],“,”,纽约\“\”,“,”,美国\“\”},“”]],“]”},“实体\ \ \ \”城市\ \ \ \“,{\ \ \“纽约\ \ \”,\ \ \“纽约\ \ \”,\\\\“美国”“城市”“实体”],typeset`allassumptions$=“类型”->“冲突”,“Word”->“纽约”,“模板””- >“假如\ ${词}\”是$ {desc1}。用${desc}代替”,“数”->“2”,“价值观”- >{{“名称”->“城市”,“DESC”- >“城市”,“输入”->“*C.NYC-ux城市-”,{“名称”- >“VisualArts”,“DESC”->“一张照片”,“输入”->“*c.nyc-x*视觉艺术-”,typeset`假设$=,typeset`open$=1,2 },typeset`querystate$=“联机”- >真的,“允许”- >真的,“mparse.jsp”“0.274794 - > 5.890552239367699,“消息”- > {}}},dynamicbox[toboxes[alphaintegration'语言识别stantbox[“”,4,自动,动态[typeset`query$],动态[typeset`box$],动态(排版'allassumptions $ $),动态(排版'assumptions $ $),动态[typeset`open$],动态(排版'querystate $ $]],StandardForm),图像尺寸cache->173.,{7。,15。}},trackedSymbols:>typeset`查询$$,排版'boxes $ $,排版'allassumptions $ $,typeset`assumptions美元,typeset`打开$$,排版'querystate $ $}),DynamicModuleValues: > {},UndoTrackedVariables: >{排版'open $ $}),baseStyle->“部署”,DeleteWithContents - >真的,编辑- >假,选择WithContents->true]\)

你可以用这个实体做计算:

GeoArea
吗?

GeoArea [\ ! \ \ * NamespaceBox [“LinguisticAssistant”,dynamicmodulebox[typeset`查询$$=“NYC”,$$ = TemplateBox[{"\"纽约市\"",RowBox[{“实体”,“(”,RowBox[{“\”城市\ ",“,”,行框[“”,行框[纽约],“,”,纽约\“\”,“,”,美国\“\”},“”]],“]”},“实体\ \ \ \”城市\ \ \ \“,{\ \ \“纽约\ \ \”,\ \ \“纽约\ \ \”,\\\\“美国”“城市”“实体”],typeset`allassumptions$=“类型”->“冲突”,“Word”->“纽约”,“模板””- >“假如\ ${词}\”是$ {desc1}。用${desc}代替”,“数”->“2”,“价值观”- >{{“名称”->“城市”,“DESC”- >“城市”,“输入”->“*C.NYC-ux城市-”,{“名称”- >“VisualArts”,“DESC”->“一张照片”,“输入”->“*c.nyc-x*视觉艺术-”,typeset`假设$=,typeset`open$=1,2 },typeset`querystate$=“联机”- >真的,“允许”- >真的,“mparse.jsp”“0.274794 - > 5.890552239367699,“消息”- > {}}},dynamicbox[toboxes[alphaintegration'语言识别stantbox[“”,4,自动,动态[typeset`query$],动态[typeset`box$],动态(排版'allassumptions $ $),动态(排版'assumptions $ $),动态[typeset`open$],动态(排版'querystate $ $]],StandardForm),图像尺寸cache->173.,{7。,15。}},trackedSymbols:>typeset`查询$$,排版'boxes $ $,排版'allassumptions $ $,typeset`assumptions美元,typeset`打开$$,排版'querystate $ $}),DynamicModuleValues: > {},UndoTrackedVariables: >{排版'open $ $}),baseStyle->“部署”,DeleteWithContents - >真的,编辑- >假,SelectWithContents - >真正]\)]

当然,这种自由形式的输入可能是模糊的。类型纽约第一种解释是纽约州:

纽约
吗?

\ \ ! (* NamespaceBox \ [“LinguisticAssistant”,dynamicmodulebox[typeset`查询$$=“ny”,$$ = TemplateBox[{"\"New York,美国\“”,RowBox[{“实体”,“(”,行框[“\”管理分区\“”,“,”,行框[“”,行框[纽约],“,”,美国\“\”},“”]],“]”},“\”实体[\ \ \“AdministrativeDivision \ \ \”,{\ \ \“纽约\ \ \”,\\\\“美国”行政区划\“\”},“实体”],typeset`allassumptions$=“类型”->“冲突”,“Word”- >“纽约”,“模板””- >“假如\ ${词}\”是$ {desc1}。用${desc}代替”,“数”->“2”,“价值观”- >{{“名称”- >“USState”,“DESC”-> "a US state",“输入””- >“* C.ny _ * USState -},{“名称”->“城市”,“DESC”- >“城市”,“输入”->“*C.NY-U*城市-”,typeset`假设$=,typeset`open$=1,2 },typeset`querystate$=“联机”- >真的,“允许”- >真的,“mparse.jsp”“0.321865 - > 5.9592187470275455,“消息”- > {}}},dynamicbox[toboxes[alphaintegration'语言识别stantbox[“”,4,自动,动态[typeset`query$],动态[typeset`box$],动态(排版'allassumptions $ $),动态(排版'assumptions $ $),动态[typeset`open$],动态(排版'querystate $ $]],StandardForm),ImageSizeCache - > {333。{7。,15。}},trackedSymbols:>typeset`查询$$,排版'boxes $ $,排版'allassumptions $ $,typeset`assumptions美元,typeset`打开$$,排版'querystate $ $}),DynamicModuleValues: > {},UndoTrackedVariables: >{排版'open $ $}),baseStyle->“部署”,DeleteWithContents - >真的,编辑- >假,选择WithContents->true]\)

按小点你可以说你想去纽约:

纽约市
吗?

\ \ ! (* NamespaceBox \ [“LinguisticAssistant”,dynamicmodulebox[typeset`查询$$=“NYC”,$$ = TemplateBox[{"\"纽约市\"",RowBox[{“实体”,“(”,RowBox[{“\”城市\ ",“,”,行框[“”,行框[纽约],“,”,纽约\“\”,“,”,美国\“\”},“”]],“]”},“实体\ \ \ \”城市\ \ \ \“,{\ \ \“纽约\ \ \”,\ \ \“纽约\ \ \”,\\\\“美国”“城市”“实体”],typeset`allassumptions$=“类型”->“冲突”,“Word”->“纽约”,“模板””- >“假如\ ${词}\”是$ {desc1}。用${desc}代替”,“数”->“2”,“价值观”- >{{“名称”->“城市”,“DESC”- >“城市”,“输入”->“*C.NYC-ux城市-”,{“名称”- >“VisualArts”,“DESC”->“一张照片”,“输入”->“*c.nyc-x*视觉艺术-”,typeset`假设$=,typeset`open$=1,2 },typeset`querystate$=“联机”- >真的,“允许”- >真的,“mparse.jsp”“0.274794 - > 5.890552239367699,“消息”- > {}}},dynamicbox[toboxes[alphaintegration'语言识别stantbox[“”,4,自动,动态[typeset`query$],动态[typeset`box$],动态(排版'allassumptions $ $),动态(排版'assumptions $ $),动态[typeset`open$],动态(排版'querystate $ $]],StandardForm),图像尺寸cache->173.,{7。,15。}},trackedSymbols:>typeset`查询$$,排版'boxes $ $,排版'allassumptions $ $,typeset`assumptions美元,typeset`打开$$,排版'querystate $ $}),DynamicModuleValues: > {},UndoTrackedVariables: >{排版'open $ $}),baseStyle->“部署”,DeleteWithContents - >真的,编辑- >假,选择WithContents->true]\)

为了方便,这里输入的是自然语言。但是输出——有时在消除歧义之后——是精确的计算语言,金宝博188投注随时准备在任何地方使用。

一般来说,能够使用自然语言指定计算语言的小块是非常强大的。金宝博188投注为了表达大规模的计算思维,金宝博188投注我们需要计算语言的形式和结构。金宝博188投注但“小话语”可以用自然语言给出,比如wolfram alpha,然后翻译成精确的计算语言:金宝博188投注

纽约市人口
吗?

\ \ ! (* NamespaceBox \ [“LinguisticAssistant”,DynamicModuleBox[{Typeset 'query $$ = "population of nyc",$$ = RowBox[{"\"纽约市\"",RowBox[{“实体”,“(”,RowBox[{“\”城市\ ",“,”,行框[“”,行框[纽约],“,”,纽约\“\”,“,”,美国\“\”},“”]],“]”},“实体\ \ \ \”城市\ \ \ \“,{\ \ \“纽约\ \ \”,\ \ \“纽约\ \ \”,\\\\“美国”“城市”“实体”],“(”,模板框[“\”城市人口\“”,rowbox[“实体属性”,“(”,RowBox[{“\”城市\ ",“,”,人口\“\”},“]”},“\”EntityProperty[\ \ \“城市\ \ \”,\ \ \“人口\ \ \ " \ " "},“EntityProperty”),“]”},排版'allassumptions $ $ = {},typeset`假设$=,typeset`open$=1,2 },typeset`querystate$=“联机”- >真的,“允许”- >真的,“mparse.jsp”“0.701535 - > 6.297594336611864,“消息”- > {}}},dynamicbox[toboxes[alphaintegration'语言识别stantbox[“”,4,自动,动态[typeset`query$],动态[typeset`box$],动态(排版'allassumptions $ $),动态(排版'assumptions $ $),动态[typeset`open$],动态(排版'querystate $ $]],StandardForm),图像尺寸cache->291.,{11。,18岁。}},trackedSymbols:>typeset`查询$$,排版'boxes $ $,排版'allassumptions $ $,typeset`assumptions美元,typeset`打开$$,排版'querystate $ $}),DynamicModuleValues: > {},UndoTrackedVariables: >{排版'open $ $}),baseStyle->“部署”,DeleteWithContents - >真的,编辑- >假,选择WithContents->true]\)
世界上人口最多的5个城市
吗?

实体类[“城市”,实体属性[“城市”,"Population"] -> TakeLargest[5]}] // EntityList
用紫色画一条余弦曲线
吗?

情节(Cos (x),{x,- 6.6,6.6},PlotStyle - >紫色)

什么计算语言使之成为可能金宝博188投注

我认为,到目前为止,毫无疑问,计算机范式的引入是上个世纪最重要的智力发展。金宝博188投注展望未来,我认为计算语言对于能够广泛利用这种模式至关重要,早在几个世纪前,金宝博188投注数学符号是启动数学范式广泛使用的关键。

如何表达和交流“计算X”的思想金宝博188投注场吗?一堆低级编程语言代码是做不到这一点的。相反,一个人需要一些能够直接谈论这个领域的事情的东西,不管它们是基因动物单词战斗之类的。一个人还需要一些人类能够阅读和理解的东西。这正是计算语言所能提供的。金宝博188投注

当然,计算语言还有一个巨大的好处,计算机可以理解它,金宝博188投注它可以用来指定要做的实际计算。换句话说,通过能够用计算语言表达某些东西,金宝博188投注你不仅找到了和人类交流的好方法,您还设置了一些可以利用实际计算能力自动生成东西的功能。

我想,随着时间的推移,计算语言作为一种通信媒介的存在将变得越来越清晰,这最终成功地启动了大量的计算X领域。金宝博188投注因为这将使这些领域的思想以一种人们可以思考的具体形式被表达出来。

计算语言将如何呈现?金宝博188投注通常,我怀疑,这将是我所说的计算论文金宝博188投注。一篇计算文章将自然语言文本与计算语言以及计算语言描述的实际计算结果混合在一起。金宝博188投注这有点像在过去的几个世纪里,技术论文通常依赖于混合文本和公式。

但是一篇计算性的文章要强大得多。金宝博188投注首先,人们不仅能读懂计算文中的计算语言,金宝博188投注但他们也可以立即在其他地方重复使用。此外,当一个人写一篇计算论文时,金宝博188投注这是电脑辅助的活动,其中一个与计算机共享负载。人类必须写出文本和计算语言,金宝博188投注但是计算机可以自动生成各种结果,信息图,等。由计算语言描述。金宝博188投注

在实践中,重要的是计算论文可以在金宝博188投注Wolfram笔记本,在以及在桌面,这些笔记本可以包含各种各样的动态和计算元素。金宝博188投注

人们可以期望用计算机论文做很多事情——无论是论文,金宝博188投注报道,锻炼什么的。我怀疑计算论文,金宝博188投注用计算语言编写,金宝博188投注将成为计算X字段的主要通信形式。金宝博188投注

我怀疑我们还能预见到计算机语言将成为关键的一小部分。金宝博188投注但有一个已经很清楚的地方是计算合同金宝博188投注。在过去,合同基本上都是用自然语言写的,或者至少是用法律变体写的。但是计算语言提供了另一种选择。金宝博188投注

用今天的Wolfram语言,我们不能把每一份合同都包括在内。但是,我们已经很清楚如何使用计算语言来表示世界上许多作为契约主体的事物。金宝博188投注重点是用计算语言,我们可以写出一个人类和机器都能理解的精确的契约。金宝博188投注

到时候会有计算合同无处不在金宝博188投注:对于商业,为了确定目标,对于人工智能伦理,等等。计算语言将使它们成为可能。金宝博188投注

大约500年前,当自然语言的读写能力开始普及时,它导致了世界组织方式的彻底改变,以及文明的发展。我认为迟早也会有计算语言的广泛普及金宝博188投注。当然,这将导致计算思维的更广泛应用(以及,金宝博188投注例如,许多“计算X”的发展金宝博188投注字段)。正如我们今天的世界充满了书面的自然语言,因此,在未来,我们可以预期,任何地方都会有计算语言,这两种语言都为我们人类定义了一种用计算术语思考的方式,金宝博188投注并在人类思维与机器和人工智能所能进行的计算之间架起了一座桥梁。

为什么它如此独特?

我已经讲了很多关于计算语言的一般概念。金宝博188投注但在今天的世界上,实际上,只有一个完整计算语言的例子:Wolfram语言。金宝博188投注一开始,这么直截了当地说出来似乎有些奇怪。有了世界上所有的技术,怎么会有这么独特的东西呢?

但确实如此。我想当人们意识到我们一直在研究Wolfram语言三十多年来-或者超过现代计算史的一半。事实上,我们能够持续地开发Wolfram语言的时间跨度比历史上几乎任何其他软件系统都要长。

我是否预见到了Wolfram语言作为一种完整的计算语言的出现?金宝博188投注不完全是。当我第一次开始开发现在的Wolfram语言时,我想让它尽可能的通用,并且在表示计算思想和过程时尽可能的灵活。金宝博188投注

一开始,它最具体的应用是数学,以及各种各样的模型。但随着时间的推移,我意识到,越来越多的东西可以符合我们定义的计算框架。金宝博188投注渐渐地,这开始包括现实世界中的事情。然后,大约十年半以前,我意识到,对,用我们定义的整个符号语言,我们可以开始系统地表示所有这些事情,比如城市化学制品就像我们以前描述抽象事物一样。

我的目标一直是把尽可能多的知识投入到语言中,以及尽可能多的自动化。但从一开始,我就确定语言是基于一小套原则-随着它的发展,它保持了一个连贯统一的设计。

不用说,这并不容易。确实如此我的日常活动30多年来,例如,300多个小时的直播过去一年)。这是一个困难的过程,包括对语言所涵盖的每个领域的深刻理解,以及一连串复杂的判断要求。但正是这种设计的连贯性使得语言得以保持其统一性,即使它已经成长为包含了关于真实世界的各种知识,以及其他使它成为完整计算语言的东西。金宝博188投注

使Wolfram语言成为可能的部分原因是其原则和基本框架的成功。但是,要真正开发它,还需要创建一个巨大的技术和内容塔——以及无数算法和元算法的发明,以及大量数据的获取和管理。

这是一个奇怪的混合了智力研究和大规模工程——我们很幸运能够持续追求几十年。在许多方面,这是我的个人使命。在这个过程中,人们经常问我如何对我们正在构建的东西进行分类。它是一个计算系统吗?它是百科全书式的数据收集吗?它是一种编程语言吗?

好,这些都是。但这只是故事的一部分。随着Wolfram语言的发展,人们越来越清楚它离现有的分类有多远。直到最近,我才终于明白我们要建立的是什么:世界上唯一完整的计算语言。金宝博188投注理解了这一点,我们这些年来的所作所为与知识历史的弧线吻合,这一点开始变得更容易理解,以及它对未来的影响。

从实践的角度来看,能够回答这个显而易见的基本问题真是太好了:“Wolfram语言是什么?”因为现在我们有了一个明确的答案:“它是一种计算语言!”金宝博188投注而且,对,这是非常重要的!

金宝博188。显示所有»

  1. 这篇文章正是我在喷气推进实验室向人们展示的观点,航空航天和斯帕瓦尔两周前。也就是说,wl与其他编程语言不同,因为它提供了一种精确思考数学和计算问题的方法。金宝博188投注直到最近,数学还是表示概念之间复杂关系的主要方法,但现在符号计算不仅允许这样做,还允许相关的计算。正如学习数学为思考概念提供了一个框架,因此,符号计算和WL尤其为表示复杂关系及其计算提供了一个框架。语言不仅反映思维,而且深刻地影响着思维,按照Sapir-Whorf假说所规定的方式。

    迈克尔•凯利
  2. 我在AP计算机科学原理课上分享了这一点(我们经常讨论开放数据,数据科学,以及计算如何影响现实世界)。Wolfram Research应该开发一个完整的AP CSP课程!

    克里斯
隐藏评论”金宝博188

?斯蒂芬·沃尔夫拉姆,金宝博188正网有限责任公司| 条款| RSS