计算机科学

首页 > 计算机科学

Julia (编程语言)

2018-09-05 18:18:44     所属分类:程序设计语言
Julia
Julia prog language.svg
编程范型 命令式、函数式、面向对象式
设计者 Jeff Bezanson, Stefan Karpinski, Viral Shah, Alan Edelman等
发行时间 2012年,​5年前​(2012[1]
稳定版本
1.0.0[2]
( 2018年8月8日,​28天前​(2018-08-08
预览版本
0.7.0-DEV
( (每夜构建版) )
操作系统 GNU/Linux, Darwin/OS X, FreeBSD.[3]
许可证 MIT许可证
网站 http://julialang.org/
启发语言
Matlab, R语言,以及Python, Lisp, shell等

Julia是一个面向科学计算的高性能动态高级程序设计语言。其语法与其他科学计算语言相似。在许多情况下拥有能与编译语言相媲美的性能。[4]

目录

  • 1 历史
  • 2 功能
  • 3 特点
  • 4 示例
  • 5 参见
  • 6 参考资料
  • 7 外部链接

历史

[5] 一群拥有各种语言丰富编程经验的Matlab高级用户,对现有的科学计算编程工具感到不满——这些软件对自己专长的领域表现得非常棒,但在其它领域却非常糟糕。他们想要的是一个开源的软件,它要像C语言一般快速而有拥有如同Ruby的动态性;要具有Lisp般真正的同像性而又有Matlab般熟悉的数学记号;要像Python般通用、像R般在统计分析上得心应手、像Perl般自然地处理字符串、像Matlab般具有强大的线性代数运算能力、像shell般胶水语言的能力,易于学习而又不让真正的黑客感到无聊;还有,它应该是交互式的,同时又是编译型的……

该项目大约于2009年中开始。

功能

主要用于数值计算

特点

  • 核心语言非常小。标准库用的是Julia语言本身写的
  • 调用许多其它成熟的高性能基础代码。如线性代数、随机数生成、快速傅里叶变换、字符串处理。(还在增加中……)
  • 丰富的用于创建或描述对象的类型语法
  • 高性能,接近于静态编译型语言。包括用户自定义类型等
  • 为并行计算和分布式计算而设计
  • 轻量级协程
  • 优雅的可扩展的类型转换/提升
  • 支持Unicode,包括但不限于UTF-8
  • 可直接调用C函数(不需要包装或是借助特殊的API)
  • 有类似shell的进程管理能力
  • 有类似Lisp的宏以及其它元编程工具

示例

生成Mandelbrot集合

function mandel(z)
    c = z
    maxiter = 80
    for n = 1:maxiter
        if abs(z) > 2
            return n-1
        end
        z = z^2 + c
    end
    return maxiter
end

随机矩阵统计

function randmatstat(t)
    n = 5
    v = zeros(t)
    w = zeros(t)
    for i = 1:t
        a = randn(n,n)
        b = randn(n,n)
        c = randn(n,n)
        d = randn(n,n)
        P = a b c d
        Q = a b; c d
        vi = trace((P.'*P)^4)
        wi = trace((Q.'*Q)^4)
    end
    std(v)/mean(v), std(w)/mean(w)
end

参见

  • Matlab
  • GNU Octave
  • R语言
  • Mathematica
  • Sagemath

参考资料

  1. ^ Why We Created Julia. Julia website. February 2012 [7 February 2013]. 
  2. ^ v1.0.0. Github.com. 2018-08-08 [2018-08-08]. 
  3. ^ README file of Julia
  4. ^ 官方主页
  5. ^ Why We Created Julia 互联网档案馆的存档,存档日期2012-04-23.

外部链接

  • Julia官方主页
  • Julia源代码主页

版权声明:本文由北城百科网创作,转载请联系管理获取授权,未经容许转载必究。https://www.beichengjiu.com/computerscience/340565.html

显示全文

取消

感谢您的支持,我会继续努力的!

扫码支持
支付宝扫一扫赏金或者微信支付5毛钱,阅读全文

打开微信扫一扫,即可进行阅读全文哦


上一篇:MiniKanren
下一篇:Limbo
相关推荐