作为一位在计算机编程和数学两大领域都十分感兴趣的研究员,我希望借这篇文章和大家一起分享在数学研究当中,十大我最喜欢的编程语言。
我这么做是为了给其他研究者提供更多的选择,并提供更多建立模型的方法。
这些语言的介绍直接来源于他们各自的官方网站简介或维基百科,在字里行间当中,我也把个人的看法穿插其中。
1. WOLFRAM LANGUAGE 

Wolfram语言是Mathematica和Wolfram Programming Cloud中使用的编程语言。
它是由Wolfram Research公司开发的一种综合性多模态编程语言,主要用于符号计算、函数式编程和规则型编程。在上述领域中,它自身设计使得它可以得到最大程度的广泛使用。
这种语言有许多使用场景,并且时常是非常专业化的。
我的看法
这是一种下降泛函、规则型的编程语言,他在处理符号计算上非常有优势。尽管如此,我觉得和Go语言比较起来,Wolframe的使用并不简洁。
它真正的价值在于它庞大的多领域标准库(特别是数学应用),这几乎比世界上任何其他编程语言都领先很多年。看过他们的演示程序以后,这门语言的魅力会让你神魂颠倒。
2. MATLAB / GNU OCTAVE
MATLAB(矩阵实验室)是由MathWorks公司出品的一门多模态数值计算运行环境,被认为是第四代编程语言。它可以进行矩阵运算、画出函数和数据图像、实现算法、创建用户界面、提供接口以便和其他编程语言的程序(包括C, C++, Java, Fortran和Python)进行交互。
我的看法
它在数值计算方面处于霸主的地位。其开源版本——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的其他目标是“充分”性能,它的副作用也容易得到控制,并且他还支持在特别针对于嵌入式领域中应用语言的实现。
我的看法
作为一种研究型语言,它结合了Haskell和Coq的特性。是很有意思的。

8. JULIA

ulia是一种用于技术计算的高水平、高性能的动态编程语言,对于其他技术计算环境的用户来说,它的语法让初学者很容易上手。
它提供了复杂的编译器、分布式并行处理、高数值精度和一个可扩展的数学函数库。Julia的基础函数库大多数由官方维护人员编写,同时,它也集成了一些C和FORTRAN中开源成熟、性能良好的库来处理线性代数、随机数产生和字符串处理等问题。
我的看法
它是一种非常有前景的科学计算和数据科学语言。由于Jupyter项目,Julia也可以用于分享代码,并和他人一起协作完成项目。

9. PYTHON

Python是一种被广泛使用的高级、通用、解释型动态编程语言。
它的设计理念是要强调代码的可读性,其变量系统是弱类型的,这样的特性让程序员用比C或Java等语言更少的代码行来实现自身需求。
该语言提供了一种旨在实现各种规模程序中都能清晰展示程序架构的方法。
Python支持多种编程范式,包括面向对象、命令式和函数式编程或过程式的风格。它具有动态类型系统和自动内存管理功能,并有一个庞大而详尽的标准库。
我的看法
从数学和科学的角度来看,Python之所以有趣,是因为它有大量的相关文库可供这种流行的编程语言使用(例如, numpy, scipy, scikit-learn, Sage等)。
得益于这个丰富的生态系统,你能轻松地学到一门对科学计算来说非常友好的语言。并且由于它很受欢迎,例子(和Jupyter notebooks中的示例代码)随处可见。

10. J

J是一种非常简洁的数组编程语言。它最适合数学和统计编程,尤其是对矩阵执行操作的时候。它还被用于极限编程和网络性能分析。
与最初的FP/FL语言一样,J通过其默认的编程特性支持过程式(与函数式编程不同)的编程方式。
我的看法
像APL和K一样,J是一种令人费解的语言。它的语言很简洁,很难读,但却强大得难以置信。如果您有兴趣采用新的方法来处理数据操作和分析的话,那么J值得一试。
这是一个快速排序的实现,来让您了解我们正在处理的问题。
quicksort=: ((:@(<#[) , (=#[) ,:@(<#[) , (=#[) ,:@(>#[)) ({~ ?@#)) ^: (1<#)
写得比较豪放。
上面的十种语言就是我眼中认为在数学领域中值得一试的语言。当然,如果您有更好的选择,欢迎留言表达你的个人见解。

————

编辑 ∑Gemini

来源:青少年数学之旅

☞泰勒定理的奇闻轶事

☞丘成桐:漫谈微分几何

☞Leibniz 如何想出微积分?(一)

☞线性相关和秩的物理意义

☞数学史上你认为最丑陋的公式是什么?

☞陶哲轩谈什么是好的数学

☞田渊栋:数学的用处(下篇)

☞你绝对没想过原来数学家这么流氓,一言不合就进行暴力证明

☞世界上最牛的五篇博士论文

☞数学中有哪些巧合让人眼前一亮?

☞算法立功!清华毕业教授美国被抢车,警察无能为力自己用“贪心算法”找回

☞学术史上的奇文:怎样用数学抓狮子

☞台大教授的反思:最难的一课 我们却没教给学生

☞麻省理工学院(MIT)研究生学习指导—— 怎样做研究生

☞分享 数学,常识和运气 ——投资大师詹姆斯·西蒙斯2010年在MIT的讲座

算法数学之美微信公众号欢迎赐稿

稿件涉及数学、物理、算法、计算机、编程等相关领域,经采用我们将奉上稿酬。

投稿邮箱:math_alg@163.com

十大应用在数学的计算机语言相关推荐

  1. 机器学习数据挖掘十大经典算法 数学建模常用算法

    国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 2006 (香港召开)年12月评选出了数据挖掘领域的十大经典算法.不仅 ...

  2. 华为徐文伟:后香农时代,面向数学的十大挑战问题

    本文为2020年8月28日徐文伟在长沙由中国工业与应用数学学会举办的"数学促进企业创新发展论坛"上的发言 来源:中国科学院院刊 徐文伟 华为技术有限公司董事,华为战略研究院院长 后 ...

  3. 华为提出十大数学挑战!解出一个就是年薪百万!

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 本文转自科研岛 后香农时代的通信技术会如何发展?又有哪些 ...

  4. 盘点数学里十大不需语言的证明

    全世界只有3.14 % 的人关注了 爆炸吧知识 当谈到复杂数学定理的证明时,很多人常常为之色变,认为这只是一个枯燥的公式堆砌和深奥的数学推导过程.这当然是一个让笔者感到纠结的误解.因为数学证明中包含的 ...

  5. 数学建模_数学模型的分类数学建模十大算法

    数学模型的分类 数学建模十大算法 1.蒙特卡罗算法 (该算法又称随机性模拟算法, 是通过计算机仿真来解决问题的算法, 同时可以 通过模拟可以来检验自己模型的正确性,比较好用的算法) 2.数据拟合.参数 ...

  6. 十大反直觉的数学结论

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|深度学习这件小事 反直觉的事实有时候甚至骗过了最好的数学 ...

  7. 数学建模中常用的十大算法

    数学建模中常用的十大算法 这里,我们将对数学建模中常用的十大算法做一个简单的梳理,并给出一些可以继续学习的参考Blogs 文章目录 数学建模中常用的十大算法 1.蒙特卡罗算法 2.数据拟合.参数估计. ...

  8. 数学建模当中常用的十大模型及各对应算法

    数学建模当中常用的十大模型及各对应算法 图文展示:

  9. 计算机语言企业使用率,2019年十大企业级编程语言榜单

    硬件与软件的组合是推动技术进步的主要因素.顶级编程语言,更成为当前我们所熟知的众多现代与新兴技术的核心组成部分.时至今日,开发人员面对的编程语言在数量上远超以往任何时期.同样的,各类 IT 外包企业也 ...

最新文章

  1. 允许服务与桌面交互_vivo 正式推出 Origin OS,融合自然设计与全新交互_搜狐汽车...
  2. 1.7 编程基础之字符串 25 最长最短单词 python
  3. php curl 伪造IP来源的代码分享
  4. 【Network】OVS VXLAN/GRE 实践
  5. cisco路由器设置时间同步
  6. 整流、滤波与线性串联型稳压电源工作原理
  7. 什么样的团队才是理想中的团队? (转自AtTeam官微的博客)
  8. 电脑tdr太低是什么意思_SOLIDWORKS TDR 错误解决办法
  9. 大厂Java面试过程中如何介绍自己的项目经历?
  10. 惠勒延迟选择实验(转)
  11. tree--树,最常见的复杂关系结构
  12. 关于在工作中遇到的问题及解决方案
  13. vivox21支持html,vivo X21支持快充吗_vivo X21支持无线充电吗-太平洋IT百科
  14. java 余弦定理_文本相似度计算之余弦定理
  15. 【愚公系列】2022年04月 微信小程序-项目篇(公交查询)-01周边站点
  16. 毕业设计-基于机器学习的动态 CAPM 模型
  17. 什么 是模型的记忆力!
  18. matlab humoments,应用于数字图像识别的Hu矩缩放不变性分析
  19. 有数列:9,99,999,9999...,编程计算前10项的值。
  20. python基础教程十进制_python教程

热门文章

  1. Java并发编程实战~volatile
  2. android camera捕捉,通过android camera2 API捕捉4:3相机图片与16:9传感器阵列相机
  3. mysql数据库进行更新、插入显示中文乱码问题
  4. 协议簇:TCP 解析:TCP 数据传输
  5. 伦巴时间步的动作要领_军训动作要领已到,请签收
  6. redis缓存原理与实现_基于Redis实现范围查询的IP库缓存设计方案
  7. 程序发出的广播其他程序收不到_RabbitMQ 如何实现对同一个应用的多个节点进行广播...
  8. php 时间格式化_3分钟短文 | PHP获取函数的代码片段,唯有反射最高效
  9. 【学习笔记】第三章——内存 II(分页存储、快表与局部性原理、两级页表)
  10. 【LeetCode笔记】226. 翻转二叉树(Java、递归)