十个用于数学的编程语言

原文作者,MathBlog Team 

翻译作者,Serena,独行者,哆嗒数学网翻译组成员。

校对,浪荡游侠。

 

关注 哆嗒数学网 每天获得更多数学趣文

作为一位在计算机编程和数学两大领域都十分感兴趣的研究员,我希望借这篇文章和大家一起分享在数学研究当中,十大我最喜欢的编程语言。

我这么做是为了给其他研究者提供更多的选择,并提供更多建立模型的方法。

这些语言的介绍直接来源于他们各自的官方网站简介或维基百科,在字里行间当中,把个人的看法穿插其中

 

1. WOLFRAM LANGUAGE 

  

 

Wolfram语言MathematicaWolfram Programming Cloud使用的编程语言。

是由Wolfram Research公司开发的一种综合性多模态编程语言主要用于符号计算、函数式编程和规则型编程。在上述领域中,它自身设计使得它可以得到最大程度的广泛使用。

这种语言有许多使用场景并且时常是非常专业化的

 

我的看法

这是一种下降泛函、规则型的编程语言,他在处理符号计算上非常有优势尽管如此,我觉得和Go语言比较起来,Wolframe的使用并不简洁

它真正的价值在于它庞大的多领域标准库(特别是数学应用),这几乎比世界上任何其他编程语言都领先很多年。看过他们的演示程序以后这门语言的魅力会让你神魂颠倒

 

2. MATLAB / GNU OCTAVE

MATLAB(矩阵实验室)是由MathWorks公司出品的一门多模态数值计算运行环境被认为是第四代编程语言。它可以进行矩阵运算、画出函数和数据图像、实现算法、创建用户界面、提供接口以便和其他编程语言的程序(包括C, C++, Java, FortranPython进行交互

 

我的看法

它在数值计算方面处于霸主的地位其开源版本——GNU Octave也是如此

 

3. R

R编程语言为统计计算和图像处理提供了软件环境,这个软件 the R Foundation for Statistical Computing提供技术支持

R语言主要使用者是统计学家和数据开发者广泛用于统计软件开发和数据挖掘分析

数据挖掘开发者的调查和学术文献数据库调查发现近几年来,R语言受到了越来越多的关注

 

4. COQ / GALLINA

Coq是一交互式定理证明软件。它允许使用数学符号和命题的形式进行逻辑演绎对推演验证猜想的推理过程进行模式化处理,帮助人们找到比较合情合理的证明方法。然后,通过规范的格式说明中进行严格证明,最后建立起一个认证程序。

Coq在构建算子的衍生物——归纳构建算子理论的基础上运行程序

如果我们要把它当做是一种编程语言的话Coq实现了一种依赖类型的函数式编程语言;作为逻辑系统,它实现了高阶类型理论。

Coq提供了一种名为Gallina范式语言。用Gallina编写的程序具有弱规范化性质——让程序最终运行结束,不会陷入死循环

 

5. PROLOG

Prolog是一种与人工智能和计算语言学相结合的通用逻辑编程语言

Prolog扎根于一阶逻辑一种形式逻辑)。与其他编程语言不同之处在于Prolog定义式语言

Prolog的程序逻辑用关系描述,用事实和规则表示。它的运行方式进行查询的这些关系的内在联系来决定的

 

6. HASKELL

Haskell是一种标准化,通用纯函数式编程语言有非限定性语义和强静态类型Haskell的特色是拥有一个类型推断和延后计算的类型系统。

 

我的看法

对于使用非函数式编程的程序员来说,它是最难的语言之一.为了能熟练使用这门语言,程序员的学习曲线会非常陡。这同时也是非常值得的。因为它的无任何其他影响。正因为它有纯函数属性,所以它十分适合用来对数学问题进行分析并建立模型。而对于那些从事范畴理论和编程语言研究的人来说,它有极强的吸引力

 

7. IDRIS

Idris是一种拥有依赖类型的通用纯函数式编程语言。它的类型系统与Agda的类似。

它支持交互式定理策略证明可以与Cop媲美定理证明开始之前,我们就可以将重点放在通用编程上。

Idris的其他目标是充分性能,它的副作用也容易得到控制,并且他还支持在特别针对于嵌入式领域中应用语言的实现

 

我的看法

作为一种研究型语言,它结合了HaskellCoq特性很有意思

 

8. JULIA

 

Julia一种用于技术计算的高水平、高性能的动态编程语言,对于其他技术计算环境的用户来说它的语法让初学者很容易上手

它提供了复杂的编译器、分布式并行处理数值精度一个可扩展的数学函数库。Julia的基础函数库大多数由官方维护人员编写,同时,它也集成了一些CFORTRAN开源成熟性能良好库来处理线性代数、随机数产生和字符串处理等问题。

 

我的看法

它是一种非常有前景的科学计算和数据科学语言。由于Jupyter项目,Julia也可以用于分享代码,并和他人一起协作完成项目

 

9. PYTHON

 

Python是一种广泛使用的高级、通用、解释动态编程语言

它的设计理念是要强调代码的可读性,变量系统是弱类型的,这样的特性让程序员用比CJava等语言更少的代码行来实现自身需求

该语言提供了一种旨在实现各种规模程序中都能清晰展示程序架构的方法

Python支持多种编程范式,包括面向对象、命令式和函数式编程或过程式的风格。它具有动态类型系统和自动内存管理功能,并有一个庞大而详尽的标准库。

 

我的看法

从数学和科学的角度来看,Python之所以有趣,是因为有大量的相关库可供这种流行的编程语言使用(例如, numpy, scipy, scikit-learn, Sage)

得益于这个丰富的生态系统,你能轻松地学到一门对科学计算来说非常友好语言。并且由于它很受欢迎,例子(Jupyter notebooks中的示例代码)随处可见

 

10. J

J是一种非常简洁的数组编程语言它最适合数学和统计编程,尤其是对矩阵执行操作的时候。它还被用于极限编程和网络性能分析。

与最初的FP/FL语言一样,J通过其默认编程特性支持过程式(与函数式编程不同)编程方式

 

 

我的看法

APLK一样,J是一种令人费解的语言。它的语言很简洁,很难读,但却强大得难以置信。如果您有兴趣采用新的方法来处理数据操作和分析的话,那么J值得一试。

这是一个快速排序的实现,让您了解我们正在处理的问题。

quicksort=: (($:@(<#[) , (=#[) , $:@(>#[)) ({~ ?@#)) ^: (1<#)

写得比较豪放。

 

上面的十种语言就是我眼中认为在数学领域中值得一试的语言。当然,如果您有更好的选择,欢迎留言表达你的个人见解

 

 

关注 哆嗒数学网 每天获得更多数学趣文

标签: none

评论已关闭