WOLFRAM

编程语言专家笔记

起源

Wolfram 语言在三十多年的时间内为 Mathematica 开发的新一代符号语言。但是,它不仅是如此,还添加 Wolfram|Alpha 的知识、知识表示和自然语言功能,以及利用 Wolfram 云端创建的新一代符号部署机制。

理论基础

从最早期阶段开始,基于符号系统的基础思想,Wolfram 语言就被视为计算的通用语言。

第一杀手级应用:数学

Wolfram 语言的概念首先应用于 Mathematica 中具有严格要求的数学计算,并在超过三十年的时间内取得了优异的成就。

在出现之前就有数百万用户

从 Mathematica 的早期用户开始,三十多年来 Wolfram 语言拥有数百万的用户,,包括许多世界顶级研究人员和无数学生及其他人士。

不受硬件约束

从最初出现开始,Wolfram 语言的构建严格遵守规则,不受当前任何硬件条件约束(所有内容都是符号式的,无限精度等)。

笔记本中的编程概念

在过去的三十年对 Mathematica 的开拓发展中,Wolfram 语言使您可以在互动笔记本文档中进行编程,将具有输出的代码运行和具有出版商质量的排版结合起来。

了解符号编程的重要性

数据结构、代码片段、图形、文档、界面...,在超过三十年时间内,Wolfram 语言逐渐成形,并且发现了越来越多的方法来应用符号编程。

Wolfram|Alpha:引入现实世界

Wolfram|Alpha 使现实世界的大量知识可以计算,因此它集成入 Wolfram 语言中,使语言不但可以接受正式的结构体,还可以接受现实世界的信息。

数十亿行代码

当前 Wolfram 语言代码的数十亿代码行位于世界各地的软件系统中,在 Wolfram|Alpha 和 Wolfram 语言自身中有几千万行代码。

可持续使用的语言

Wolfram 语言足够简洁,并且能够提供对上至 1988 年的 Mathematica 1.0 的各种早期版本的兼容。

三十多年的时代先驱

Wolfram 语言发明了许多创新的编程思想——其中一些已经深刻地影响了过去三十年开发出来的其他语言,但是许多特征仍然只有 Wolfram 语言才拥有。

时髦术语合规性

Wolfram 语言既新且旧:具有悠久的历史,但是有很多创新思想。它具有许多可以映射到常见现代编程语言时髦术语的属性,以及许多从其他语言中不常见到的优点。

Wolfram 语言是...

(各方面特性)

基于知识

(我们自己的时髦用语)作为核心原理之一,Wolfram 语言具有大量的知识,各种算法和世界上的一切东西都是内置的。

符号式

在 Wolfram 语言中,任何内容(代码、数据、图像、文档、界面、程序等)是符号表达式。

交互性

Wolfram 语言代码可以作为基于文档的用户和系统之间的 REPL 对话框交互式运行。

函数式

在符号字符下,Wolfram 语言支持基于常见变换的函数式编程的扩展格式。

高级

在基于知识的字符和最大自动化理念下,Wolfram 语言可能是世界上最高级的语言。

声明式

Wolfram 语言结合了声明式概念的扩展格式,并且具有实现了特定高层次目标的高度自动的超级函数。

“包括电池”

它更像自带发电厂:Wolfram 语言内置了大量的算法和知识,所有一切都可以立即实现共同操作。

同像性(Homoiconic)

在符号字符下,code=data 是 Wolfram 语言的基本方式。

面向模式

符号表达式的高级模式匹配是 Wolfram 语言的核心功能。

元编程性

在符号字符下,Wolfram 语言可以立即操作不仅具有宏,还具有语言全部功能的代码。

简练

在所有内置功能和仔细选择的基元下,Wolfram 语言中的程序通常与它们所要实现的目标相比很短。

基于表达式

Wolfram 语言中的任何内容(数据、代码等)表示为具有数值的树结构符号表达式。

反省性

Wolfram 语言的符号字符可以实现完整的自我检查。

多态

使用模式匹配指定函数使得 Wolfram 语言可以立即表达深度多态的行为。

动态类型

在 Wolfram 语言中,所有内容都是符号表达式,并且每个符号表达式都具有自动定义行为的头部。

应用式

在 Wolfram 语言中,程序可以视为将符号变换的序列应用于可置换符号表达式。

拼接功能

因为 Wolfram 语言是符号式的,程序作为单独有意义的部件的拼接构建。

DRY 友好

哪种代码可以在 Wolfram 语言的函数式符号模式中分解的自由使得以“不自我复制”的方式编程很容易实现。

DSL 启用

Wolfram 语言的符号特征使得在语言内创建属于特定领域的语言很轻松,并且许多特征是内置的(正则表达式、图形、界面、部署等)。

知识表达

在广泛的内置知识和符号结构下,Wolfram 语言是表示知识并且将知识可计算的理想工具。

语义

Wolfram 语言具有广泛的现实世界实体和结构的内置表示。

数学

Wolfram 语言最全面最深入地覆盖了数学计算。

任意精度处理

在 Wolfram 语言中,数字可以具有任意精度或者长度。

符号数值

Wolfram 语言对符号和数值计算提供最深入的支持,并且许多算法混合了这些方法。

便于查询

在 Wolfram 语言中,所有数据都由允许使用高级函数式结构体进行普遍查询的符号表达式表示。

面向对象

Wolfram 语言对传统面向对象的编程提供强大的符号支持。

反应

Wolfram 语言实现了函数式反应编程,以支持用声明方式构建复杂动态用户界面。

多任务调度

Wolfram 语言的符号式模式匹配可以帮助用户在函数的任何参数或者表达式的任何部分进行调度。

丰富的表达功能

Wolfram 语言的详细设计和大量内置功能使得在语言中清晰表达计算理念变得很轻松。

可读性

对命名和结构的强调使得 Wolfram 语言代码高度可读。

以文档为中心

在 Wolfram 语言中,代码不限于 ASCII 文本,但是以丰富的笔记本文档给出。

读写适用性

在 Wolfram 语言中,可运行程序可以编写为结构丰富的笔记本。

易于编写

Wolfram 语言可用于编写在各种环境和语言中外部操作的脚本。

自然语言

基于与 Wolfram|Alpha 相同的技术构建,Wolfram 语言允许自然语言输入,既作为程序的一部分,又在功能中实现。`

JIT 编译

Wolfram 语言经常无缝地使用实时编译到自身的虚拟机器上优化性能,并且给出解释和编译操作的最佳性能。

可并行化

无论是单独的机器还是潜在的异构网络,Wolfram 语言都具有内置并行计算功能。

基于云端

Wolfram 语言在云端运行,并且支持各种格式的基于云端的计算,以及可以在本地运行。

面向客户服务器

Wolfram 语言互动界面的通信设置为在一个或者多个计算内核下,通过 WolframLink 符号协议实现。

平台无关

Wolfram 语言在所有标准计算机平台上都相同,无论本地还是云端。

能够在任何时候被频繁替换

由于 Wolfram 语言被解释,并且它的部署是符号的,代码可以在执行的任何阶段查询、调试和修改。

FFI 启用

Wolfram 语言具有对在各种级别的外国语言界面上运行的丰富支持。

能共同操作

内置于 Wolfram 语言的是与其他语言和数百种格式的数据交互的功能。

安全

Wolfram 语言并没有展现出指针和内存配置等底层结构体,因此避免了大型的程序漏洞。

持续

由于 Wolfram 语言中的任何内容(代码、数据、图表、界面等)以符号表达式表示,可以立即对它进行序列化处理以实现持续存储。

支持猴子补丁

在 Wolfram 语言中,有统一的机制可以重新定义几乎任何对象的操作。

不可变

在 Wolfram 语言中,所有一切都是表示自身数值的符号表达式;只有特定函数能够修改特定表达式。

稳定

Wolfram 语言是 Mathematica 中的可兼容升级版,并且保持了对过去三十年开发的完美兼容。