首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么使科学编程语言,科学?

什么使科学编程语言,科学?
EN

Software Engineering用户
提问于 2016-06-10 11:56:44
回答 2查看 2.5K关注 0票数 3

为什么有些编程语言如Python或Julia被认为是“科学”编程语言?我想我真正的问题是什么标准使编程语言科学?

EN

回答 2

Software Engineering用户

发布于 2016-06-12 08:27:44

Jeff关于朱莉娅的论文博士“技术计算中的抽象”详细讨论了这个问题,只得到了部分答案。这里有一些关键的引号。

我们建议技术用户需要灵活性来为他们的问题选择符号,而语言设计--最高层次的抽象--是当您需要这种级别的灵活性时使用的地方。

当使用通用语言进行科学计算时,

有效的科学图书馆广泛使用多态性、自定义操作符和编译时抽象。代码生成方法(编写编写程序的程序)异常常见。

对比主流编程语言与科学(技术计算)语言的设计优先级:

每一行的优先次序不一定是对立的,甚至不是相互排斥的,而是一个强调的问题。当然,在同一种语言中有参数多态和临时多态是可能的,但是语法、推荐的成语和标准库的设计将倾向于强调其中一种或另一种。当然,左侧的特性对于技术计算也是有用的;我们夸大了这一点。

另一个因素是“方便”(生产力),即您需要知道多少才能使用给定的功能,

这导致语言采用各种形式的松散耦合、自动化和软件工程区分,这些在其他语言中被认为是重要的。..。这些系统是面向功能的,通常提供相当多的函数和更少的数据类型。组织大型系统的类型定义和特性不受重视.

我把“优秀的软件工程区别”解释为强调快速和探索性的开发,而不是团队合作、可移植性、可维护性、可用性、可测试性、部署性等等。

非正式地说,为了提供所需的体验,一种语言需要能够为一段简短和孤立的代码(如sin(x) )指定一个意义。这直接导致声明和注释成为可选的,优化管理任务,如内存管理,并将信息隐式保留(例如,标识符sinx的定义范围和类型)。

作者提到了文化差异,例如使用MATLAB的\运算符,

通过只编写A\B,用户可以为多个数据类型求解方形、过定或欠确定的密集或稀疏线性系统。参数甚至可以是标量,在这种情况下执行简单的除法。简而言之,大量的线性代数软件是通过一个字符访问的!这与软件工程的传统形成了鲜明的对比,在这种传统中,澄清程序员的意图可能会被认为是更重要的。

票数 5
EN

Software Engineering用户

发布于 2016-06-10 12:36:17

通常,当有人将编程语言称为科学时,要么是因为在该领域中有有用的库可供使用,要么是因为语言的语法使得编写所需的算法变得很容易。然而,仅仅因为一个领域认为某一特定语言是科学的,并不意味着另一个领域认为它是一样的。

Python有许多用于生物信息学的库,因此这可能是其吸引力的一部分。Fortran有很多通用的数学库,所以它经常被高度计算的领域所青睐(它的数组切片语法可以简化算法)。函数式编程语言通常可以更紧密地复制原始代数,因此它们也可以在某些圈子中得到青睐。在F#的情况下,度量功能的单位赋予编译器执行维度分析的能力,这在某些领域可能是一个很大的好处(特别是在多个单元系统使用时的工程)。

另一个有时被考虑的元素是它编写代码的速度和容易程度。你要写很多锅炉板代码吗?同样,用简单的语法来调用您的编译程序也很容易。添加命令行参数有多容易,文件输入和输出有多容易。Fortran使编写固定的列宽度输出文件变得非常容易(这使得手工查看先前的文件而不是将它们导入电子表格程序很容易)。

票数 4
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/321845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档