Julia是一种高级通用[13]动态编程语言,它最初是为了满足高性能数值分析计算科学的需要而设计的,不需要解释器,速度快[14][15][16][17],也可用于客户端和伺服器的Web用途[18][19]、低级系统编程或用作规约语言[20]

事实速览 编程范型, 设计者 ...
Julia
编程范型多范式多分派, 过程式, 函数式, 元编程, 多阶段编程英语Multi-stage_programming
设计者Jeff Bezanson, Alan Edelman, Stefan Karpinski, Viral B. Shah
实现者Jeff Bezanson, Stefan Karpinski, Viral B. Shah等[1][2]
发行时间2012年,​13年前​(2012[3]
当前版本1.11.2[4]在维基数据编辑, 2024年12月1日, 39天前
实现语言Julia, C, C++, Scheme, LLVM[5]
系统平台x86-64, IA-32, ARM v8(64位), CUDA, ARM (32位), PowerPC, 网页浏览器 (JavaScriptWebAssembly)[6]
操作系统macOS, Windows, Linux, FreeBSD[7], Android[8]
许可证MIT许可证
文件扩展名.jl
网站JuliaLang.org
启发语言
关闭

Julia设计的独特之处包括,参数多态的类型系统,完全动态语言中的类型,以及它多分派的核心编程范型。它允许并发并行分布式计算,并直接调用CFortran库而不使用粘合代码

Julia拥有垃圾回收机制[21],使用及早求值,包含了用于浮点计算、线性代数随机数生成正则表达式匹配的高效库。有许多库可以使用,其中一些(如用于快速傅里叶变换的库)已经预先捆绑在Julia里[22]

faviconfaviconfaviconfaviconfavicon
22 sources

历史

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

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

favicon
1 sources

功能

主要用于数值计算。

特点

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

示例

生成Mandelbrot集合

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

随机矩阵统计

using LinearAlgebra: tr
using Statistics #导入std, mean等函数

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]
        v[i] = tr((P'*P)^4)
        w[i] = tr((Q'*Q)^4)
    end
    std(v)/mean(v), std(w)/mean(w)
end

参考资料

参阅

外部链接

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.