APP下载

程式语言Julia历经6年开发,融合多语言特性终释出1.0

消息来源:baojiabao.com 作者: 发布时间:2024-05-19

报价宝综合消息程式语言Julia历经6年开发,融合多语言特性终释出1.0

Julia第一次释出时,就宣告了该程式语言宏大的目标,除了要有C一样的执行速度外,还要如同Python成为一个具一般可用性的语言,也想要如同Matlab支援线性代数算法,字串处理能力要能与Perl匹敌等各式需求,而官方在Julia 1.0释出文章中,有自信的列出了Julia数个特点。

Julia一开始设计就以高效能运算为目标,Julia的程式可以用LLVM编译成多平台的高效能原生执行码。Julia也兼具一般性,能使用多重调度作为范式,让该语言容易表达多物件导向与函式程式设计模式,其标准函式库提供了异步I/O、程序控制、日志纪录、概要分析以及套件管理器等。

作为Julia的目标之一,是能具备如同Ruby一样的动态特性,因此官方让Julia成为动态型别的语言,就像是脚本语言一样,在互动使用上有很好的支援。而在专业运算支援方面,官方也在Julia下足了功夫,因此Julia也适合用于数学的数值运算,支援多种数值资料型态,而其多重调度的特性,更加适合用于定义数字与阵列的资料型态。

Julia是具有丰富的描述性资料型态的语言,型态宣告可以让程式更加清楚与强健。而Julia套件间也可以进行良好的协同工作,无论是单位数量的矩阵,或是颜色和货币的资料表格字段,都能高效能的运作。

官方提到,Julia并非半生不熟的程式语言,因此1.0最重要的更新,也就是API的稳定性。开发者使用Julia 1.0开发的程式,也能在1.1、1.2版本中运作,这也能帮助语言开发团队或是社群可以放心开发套件、工具与新功能。而跟着1.0发布的是全新的套件管理器,简化了安装套件以及管理相依性的工作,同时也支援个别专案的套件环境,能与他人分享工作应用程序状态,而且还能无缝支援私有套件与套件储存库,因此开发者可把用于开源套件生态系的工具,使用在安装与管理私有套件。

Julia 1.0为了可以良好支援统计与资料科学应用,引入了新的规范以表示缺失值,官方强调,能够表示和处理缺失的资料,是统计和资料科学应用的基本。Julia 1.0中,任何泛型集合型态都能透过让元素包含预定义的缺失值,来有效率的处理缺失值。过去Julia处理这种联合型态的集合效率极差,但在改进编译器后,这个问题获得改善。

另外,迭代协定也重新设计,开发者能更容易实现多种迭代,有别过去定义三个不同泛型函式的方法,现在只要定义一个迭代函式以及两个参数方法。而内建的字串型态现在已经可以安全的保存任意资料,程式不再会因为字串中放入了一个无效的Unicode杂散字节而崩溃。

Julia的最佳化器(Optimizer)也是这次更新的一大亮点,现在最佳化器可以透过呼叫函数传播常量,进而做到更好的死码删除(Dead Code Elimination)和静态评估。而编译器也更善于避免在长效物件旁分配短效包装器(Wrapper),这让开发者可以在不损失效能的情况下,容易的使用高阶抽象。

Julia是一个非常精简的语言,许多功能组件被拆分成标准函式库套件,虽然这些套件随附在Julia中,但不属于语言基础的一部分,这些标准函式库将独立于Julia,进行本身的版本控制与升级。官方在发布Julia 1.0时,对API做了彻底的检视,过去模糊的命名以及低效能的程式编写模式,都被重新命名与重构,以维持语言的一致性与可用性。

想要从0.6或是更早版本的Julia升级成1.0的开发者,官方建议,可以先升级到0.7版本。由于0.7版本是一个过渡版本,会发出弃用警告,协助指引开发者升级程序,在程式码没有警告后,就可以无痛的升级至Julia 1.0版本。既存的套件也使用这个过渡方式,发布与1.0相容的更新。

2018-08-10 18:31:00

相关文章