作为一名对计算机编程和数学都非常感兴趣的研究者,我希望通过这篇文章与大家分享我在数学研究中最喜欢的十种编程语言。
我这样做是为了给其他研究人员更多的选择,并提供更多构建模型的方法。
这些语言的介绍直接来自于各自的官网简介或者维基百科,字里行间还穿插了我个人的观点。
1.
语言是云中使用的编程语言。
它是该公司针对符号计算、函数式编程和基于规则的编程而开发的综合性多模态编程语言。 在上述领域中,它的设计是为了最大限度地广泛使用。
该语言有许多用例,并且通常非常专业。
我的观点
这是一种降序函数式和正则编程语言,在处理符号计算时非常有优势。 即便如此,我感觉相比Go语言来说,使用起来并不简洁。
它的真正价值在于其庞大的多领域标准库(特别是数学应用程序),这比世界上几乎任何其他编程语言都领先许多年。 看过他们的演示程序后,这门语言的魅力会让你着迷。
2./GNU
( Lab)是该公司出品的多模态数值计算操作环境,被认为是第四代编程语言。 它可以执行矩阵运算、绘制函数和数据图像、实现算法、创建用户界面,并提供与其他编程语言(包括 C、C++、Java 和 )程序交互的接口。
我的观点
在数值计算中处于主导地位。 其开源版本 GNU 也是如此。
3.R
R编程语言提供了用于统计计算和图像处理的软件环境,该软件由R for提供支持。
R语言的主要用户是统计学家和数据开发人员,广泛应用于统计软件开发和数据挖掘分析。
对数据挖掘开发人员的调查和对学术文献数据库的调查表明,R 语言近年来受到越来越多的关注。
4.COQ /
Coq 是一款交互式定理证明软件。 它允许以数学符号和命题的形式进行逻辑演绎,将猜想的演绎和验证的推理过程模型化,帮助人们找到更合理的证明方法。 然后通过规范的正式规范进行严格的论证,最终建立认证程序。
Coq 在构造算子的导数——归纳构造算子理论的基础上运行程序。
如果我们想把它看作一种编程语言,Coq 实现了一种依赖于类型的函数式编程语言; 作为一个逻辑系统,它实现了高阶类型理论。
Coq 提供了一种名为 的范例语言。 编写的程序具有弱规范化性质——让程序运行到最后而不陷入无限循环。
5.
它是一种结合人工智能和计算语言学的通用逻辑编程语言。
植根于一阶逻辑(形式逻辑的一种形式)。 与其他编程语言不同,它是一种定义性语言。
其程序逻辑用关系来描述,用事实和规则来表示。 它如何工作取决于被查询关系的相互关系。
6.
是一种标准化的、通用的纯函数式编程语言。 它具有不受限制的语义并且是强静态类型的。 它具有具有类型推断和惰性求值的类型系统。
我的观点
对于使用非函数式编程的程序员来说,它是最难的语言之一。 为了精通这门语言,程序员的学习曲线将非常陡峭。 但这也是非常值得的。 因为它没有任何其他作用。 由于其纯函数特性,非常适合对数学问题进行分析和建模。 而且对于做范畴论、做编程语言研究的人来说,有着很强的吸引力。
7.伊德里斯
Idris 是一种具有依赖类型的通用纯函数式编程语言。 它的类型系统类似于 Agda 的类型系统。
它支持定理和策略的交互式证明,与 Cop 相当。 在定理证明开始之前,我们可以专注于通用编程。
Idris 的其他目标是“足够”的性能,其副作用易于控制,并且他还支持专门针对嵌入式领域的应用程序语言的实现。
我的观点
作为一种研究语言,它结合了 Coq 和 Coq 的特点。 这很有趣。
8.朱莉娅
Ulia 是一种用于技术计算的高级、高性能动态编程语言,其语法使初学者可以轻松地在其他技术计算环境中使用。
它提供了复杂的编译器、分布式并行处理、高数值精度和可扩展的数学函数库。 Julia 的大部分基本函数库都是由官方维护者编写的。 同时还集成了一些C和中文开源的成熟且性能良好的库来处理线性代数、随机数生成、字符串处理等问题。
我的观点
对于科学计算和数据科学来说,它是一种非常有前途的语言。 借助项目,Julia 还可以用于与其他人共享代码并协作进行项目。
9.
它是一种广泛使用的高级、通用、解释型动态编程语言。
它的设计理念是强调代码的可读性,其变量系统是弱类型的。 这个特性可以让程序员用比C或Java等语言更少的代码行来实现自己的需求。
该语言提供了一种在各种规模的程序中清晰地表示程序架构的方法。
支持多种编程范例,包括面向对象、命令式、函数式或过程式风格。 它具有动态类型系统和自动内存管理,并拥有庞大而详尽的标准库。
我的观点
从数学和科学的角度来看,它很有趣,因为这种流行的编程语言有大量可用的相关库(例如,numpy、scipy、-learn、Sage 等)。
得益于这个丰富的生态系统,您可以轻松学习对科学计算友好的语言。 由于它的流行,示例(以及 参考资料中的示例代码)随处可见。
10.J
J是一种非常简洁的数组编程语言。 它最适合数学和统计编程,特别是在矩阵上执行运算时。 它还用于极限编程和网络性能分析。
与原始 FP/FL 语言一样,J 通过其默认编程功能支持过程式(而不是函数式编程)编程风格。
我的观点
与 APL 和 K 一样,J 是一种复杂的语言。 它的语言简洁、难以阅读,但却非常强大。 如果您有兴趣采用新的数据操作和分析方法,J 值得一试。
这是一个快速排序的实现,可以让您了解我们正在处理的内容。
=: ((:@(<#[) , (=#[) ," 角色="">:@(