Watch videos with subtitles in your language, upload your videos, create your own subtitles! Click here to learn more on "how to Dotsub"

Stephen Wolfram's Introduction to the Wolfram Language

0 (0 Likes / 0 Dislikes)
大家好,我是Steven Wolfram,在这里,我想为大家介绍一下Wolfram语言。 正如大家所知,我致力于现在的 Wolfram 语言已经有近30年了。 其中很大一部分是在逐步发展 Mathematica 和 Wolfram|Alpha, 直到最近,我们终于完成了可以创建整个 Wolfram 语言所需的元素, 并建立对其进行广泛部署的机制。 现在是我们非常激动,无比兴奋的时刻, 因为忽然之间我们能将计算带到一个全新水平, 并能把高级复杂的计算注入到任何领域。 那么,什么是 Wolfram 语言呢?首先我想说它是一种全新的语言。 我将它称之为基于知识的语言。 它是一种将大量关于如何进行计算, 以及关于整个世界的知识直接集成在中的语言。 因此在这个语言中,我们可以处理图像的基元、 还可以布局网络、查找股票价格、创建界面、求解优化问题等等。 并且通过语言的符号式结构, 所有这些都可以以一种完美统一的方式共同运行。 让我来示范给你。 Wolfram 语言其中的一个非常好的功能就是 如果你需要便可以进行完交互式使用, 甚至是在网页上。 你可以输入任何内容并马上得出结果,比如这样,或者这样 是的,它非常快。 当然它也知道如何因式分解这个数。 在它内部直接构建了所有高级的算法。 它还有具有立即可视化的功能。 它还能立即知道例如怎样从 Facebook 获取你的朋友网络。 它可以自动将朋友网进行布局,并能够进行所有高级图论算法, 因此,你可以直接用其查找关于朋友网的任何内容, 比如你的好友可怎样分组,或谁拥有最多的联系? Wolfram 语言能够做很多事。 比如,我们让它从我现在使用的电脑摄像头 获取目前的图像。哦,这是我自己。 接下来,识别我的边缘。我还可以让图像动态化。 我可以进行任何类型的计算,比如将我分为许多小方块, 然后再将我的每个方块中混合随机颜色, 接下来重新组合。 Wolfram 语言不仅知道算法和计算, 它还知道我们的世界。 比如,让我们用它查询今天的日落时间, 这是我当前所在地的答案。 这是一天中从日出到日落的时间。我们可将其转换为分钟。 你知道,Wolfram 语言有准确的方法来表示任何事物, 但是当我们面对整个世界时, 我们通常希望用自然语言描述我们所谈的事物。 这要感谢 Wolfram|alpha,我们在其中构建了大量技术来实现这点。 比如查询 “在北美的国家”,我们的自然语言理解系统能够明白 我们的意思,并从中生成准确的 Wolfram 语言编码, 从而让我们获取国家的列表,现在我们可以用其进行计算。 比如,让我们生成各国的国旗,或者找出这些国旗的主色。 或用一小段程序创建一个国家和其旗帜主色的表格。 OK,让我们试一些更难的内容。 我们来获取在西欧国家的首都列表。 接下来,我们来找出按什么顺序能够以最短旅程访问所有这些国家。 不言而喻,Wolfram 语言中拥有知名的算法 来解决这类被称为 “旅行商问题” 的问题。 现在,让我们用一条粗红线在地图上绘出这个旅程, 是的,Wolfram 语言内置有任何地方的详细地图。 OK,我已近演示了几种不同的例子, 在 Wolfram 语言中还有更多的内容。 在此你可对它有些了解,它包含了上千种的算法函数, 上千种的数据和知识领域, 但是在某种意义上这仅仅是一个开始, 因为把所有这一切能够整合在一起将是非常强大的。 并且,这正是凭借着 Wolfram 语言结构和 内置原理才使得这一切成为可能。 理解 Wolfram 语言的第一个要就是它是符号式的。 如果你有一个 x ,你不需要赋予其任何值,你可以让它只是符号 x 。 你可以输入一个含有 x 的公式,并且对公式进行符号计算。 当然,这对于数学是非常方便的,但 Wolfram 语言中的一个重大发现 在于它还为处理其他数以万计的事情提供了一种方法。 比如你得到的某个数据中含有你不知道的部分。 你可以直接用符号方式处理。 如果是网络之类又会怎样呢? 在Wolfram 语言中,它也是一个符号表达式,显示为一个图 而且,你也可以对它进行任意符号式处理, 三维图形也是这样。任意创建一个符号格式, 对其进行三维渲染,在此,由于所有都是符号, 我可以只使用这个输入,并将其放入图像处理算法中 或者我可以创建一个图像的不同旋转版本集合。 Wolfram 语言中的其他符号表达式还有用户界面控件等,比如滑动条。 我可以创建一个关于它的完整网格,并创建任何用户界面, 全部都可只用符号表达式来表示。 文本和文本基元也一样,全部都是符号。 一旦成为符号,就可以非常容易的进行元操作, 比如,挑选一张绘图并有效的制作它的动态版本。 你可以制作任何东西的动态版本, 因为一切都是符号表达式,所以都会工作。 你知道任何函数都可以进行符号式处理。 这是一个 f ,符号 f ,并且语言中 FullForm 的结果都是这样, 仅仅是一大堆符号函数,来表示公式、数据集、文本、城市等等。 那么,你用这些符号函数可以做什么呢? 当然,其中一个是进行难以置信强大的函数编程。 符号式嵌套一个函数,或对某个函数加上更多的框。 或创建一种嵌套的界面。 好了,来些更复杂的,让我们利用函数编程进行网页编辑。 Wolfram 语言已经知道如何导入很多东西,比如我的网页的超链接。 让我们加入多一些编码,NestList 几层,创建一个网页角点的图。 你可以用符号纯函数来完成所有各种事情。 比如,这个函数可以取得 Wolfram 语言中内置的英文单词, 并创建一个函数找到与给定单词最接近的词。 现在,您可以使用这个函数,并将其应用于 任何单词完成简单的拼写检查。 纯函数和函数编程适用于任何地方, 这里是根据一个简单的符号纯函数选出的回文词。 你可以对其进行彻底推广,比如通过难以想象的强大符号方式 。 来查询数据库和大型分层数据集。 某种意义上,Wolfram 语言是终极融合语言, 因为他它的符号性质让其能够包含几乎任何风格的编程, 首先它非常强大,并且是基于模式编程的独特符号形式。 其中的构思是你给出一个变换某类符号表达式的模式。 像这个,f 的某种特殊的嵌套列表结构,这是它的值。 所以现在如果我们给定 f 这种结构,它将会生成一个结果, 但是如果模式不匹配,它还保留符号形式。 这也是在 Wolfram 语言中所有函数定义的基本方式。 Wolfram 语言是目前最庞大的一种语言, 但是它只是建立在一套小而强大的原理上。 第一点是其一致性,其理念在于语言中的所有内容都必须互相配合。 我必须说我在过去的30多年里花费了可观的时间使这点成为现实, 设计语言的每个角落,使其能够尽可能的一致、统一和完整。 使其能够简单易懂,并且当使用一个部分的内容时, 确定也可以在其他部分正确运用。 我还有另一个原则,那就是最大限度的自动化, 其构思是语言能够尽可能的自行处理。 例如,你在研究机器学习,并且你希望构建一个数据分类器。 当然,可以使用很多种方法来实现, 但是在 Wolfram 语言中,只需要一个超级函数 “Classify”, 其中套装了元算法来自动完成。 当然,如果你希望你可以介入并控制每一部分的细节, 否则你可以将其视作一个黑盒, 这是上千种 Wolfram 语言中的超级函数中的一种, 为你有效提供最够级别的程序构建模块。 并且这些构建模块中不仅包含了算法,而且还包含了知识和数据。 关于如何导入和导出上百种格式的知识, 关于如何与外部 API 交互的知识, 关于如何计算世界上所有系统的属性知识, 以及储存在 Wolfram 云端,并持续更新的大量精选的可计算数据。 这些数据同时驱动着 Wolfram|Alpha,并可完全进行程序访问。 OK,既然 Wolfram 语言使创建强大程序变得简单, 但是你可以让它来做什么呢? 其实语言的符号式特性在此有着很大的作用 因为,它使语言对其自身的部署进行定义和描述。 例如,你在 Wolfram 语言中设立了一个函数, 你可以在你的笔记本会话中运行它, 或者你可以只提取符号编码并将其部署在云端。 你可以通过网页进入云端对象, 如果这么做的话,你会看见在网页界面上 自动运行你在云端的 Wolfram 语言编码。 顺便说一句,你还可以设定手机软件来完成相同的内容。 这里的界面使用了CDF,我们在云端运行的可计算的文档格式。 实际上,你可以在云端运行完整的 Wolfram语言的笔记本界面,这就是。 你可以使用笔记本作为报告的模板, 可通过 Wolfram 语言编码自动填写, 你可以预约特定时间在云端服务上运行 Wolfram 语言, 比如发送你的邮件。 你可以选择任意 Wolfram 语言函数并为其设置一个即时 API, 你可以在网络的任何地方调用。 比如,查询用户所在地的天气的 JSON 输出。 如果你有嵌入式 Wolfram 引擎,你可以获取代码 并把它嵌入到许多中语言中进行调用。 实际上,你可以调用代码,而无需访问网页。 关于 Wolfram 语言的其中一点是完全可以扩展的, 你可以编辑很短的程序来实现强大的功能, 你可以像 Wolfram|Alpha 那样编写上百万条程序。 符号程序构建和调试符号程序非常简单, 因为在每一个阶段,每一个部分都有意义 并且根据你的编程风格,Wolfram 语言中有着各种各样的 IDE, 其利用 Wolfram 语言的符号特征。 你还可以在高性能计算上使用 Wolfram 语言, 语言中有内置的并行功能。 这个是自动启动并运行在我的小型异构网络中的许多不同的处理器上, 并收集结果。 你也可以在未来新一代的小型嵌入处理器上使用 Wolfram 语言, 例如,包含了用于 Raspberry pi Linux 计算机的操作系统。 你可以用 Wolfram 语言与设备进行交互, 实际上,Wolfram 语言对于设备来说处于一个独特地位, 并且对于通常现实世界数据而言也是同样,因为在某种意义上来说 它是一种内置了世界模型的语言。 事实上,WDF——Wolfram 数据框架中也囊括了这个模型, 在 Wolfram 语言内,有许多方法处理无结构的数据, 并将其中的单位、日期和实体以及其他带入 WDF 中使其规范化。 当涉及到设备,Wolfram 设备连接项目可对其进行管理, 使这些设备在语言内可被自动访问。 OK,我在此展示了关于 Wolfram 语言的内容, 那么你将怎样开始使用呢? 在所有输入之后,都会有一个建议栏, 为你提供了下一步可能操作的建议, 而且你可以尝试仅仅用自然语言进行输入, 并用这种方式开始构建你的程序, 当你得到想要的程序时,你可以用各种方法对其进行部署。 我将 Wolfram 语言目标定位在囊括尽可能多的计算和知识上 这样,使用户可以对其灵感进行快速和便捷的部署。 我还为 Wolfram 语言是第一个独一无二的优秀语言感到非常高兴 因为你可以如此简单的做如此之多的事情, 并能快速接触如此广博的方法和主题。 我朝着 Wolfram 语言的方向已经工作了30年。 我们在很早就铺垫了强大的基础,并在之上持续构建, 事实上我不断被它的可能性所震惊。 目前我们拥有了大量累积的技术和内容, 我认为这完全改变了我们对编程应有的认识。 我每天使用它时都会感到激动, 我希望你也能有机会尝试, 最终你将会借助 Wolfram 语言实现惊人的成果。 谢谢大家!

Video Details

Duration: 12 minutes and 55 seconds
Country:
Language: English
License: Dotsub - Standard License
Genre: None
Views: 0
Posted by: wolfram on Aug 28, 2020

Stephen Wolfram's Introduction to the Wolfram Language

Caption and Translate

    Sign In/Register for Dotsub above to caption this video.