当前位置首页 > 百科> 正文

Julia(程式语言)

2019-10-09 00:11:14 百科
Julia(程式语言)

Julia(程式语言)

Julia 是一个面向科学计算的高性能动态高级程式设计语言。其语法与其他科学计算语言相似。在许多情况下拥有能与编译型语言相媲美的性能。Julia 是个灵活的动态语言,适合科学和数值计算,性能可与传统静态类型语言媲美。

基本介绍

  • 外文名:Julia
  • 概述:面向科学计算的设计语言
  • 功能:主要用于数值计算
  • 特点:核心语言非常小
  • 中文社区:Julia语言编程开发问答平台

概述

Julia 是一个面向科学计算的高性能动态高级程式设计语言。其语法与其他科学计算语言相似。在许多情况下拥有能与编译型语言相媲美的性能。
一群拥有各种语言丰富编程经验的Matlab高级用户,对现有的科学计算编程工具感到不满——这些软体对自己专长的领域表现得非常棒,但在其它领域却非常糟糕。他们想要的是一个开源的软体,它要像C语言一般快速而有拥有如同Ruby的动态性;要具有Lisp般真正的同像性(Homoiconicity)而又有Matlab般熟悉的数学记号;要像Python般通用、像R般在统计分析上得心应手、像Perl般自然地处理字元串、像Matlab般具有强大的线性代数运算能力、像shell般胶水语言的能力,易于学习而又不让真正的黑客感到无聊;还有,它应该是互动式的,同时又是编译型的……
该项目大约于2009年中开始,目前(2012年2月)距离1.0版的发布已经进展到90%。在源码主页上可下载试用。
目前,Julia中文社区正在迅速成长,Julia语言编程开发等问答平台已经建立。

历史

一群拥有各种语言丰富编程经验的Matlab高级用户,对现有的科学计算编程工具感到不满——这些软体对自己专长的领域表现得非常棒,但在其它领域却非常糟糕。他们想要的是一个开源的软体,它要像C语言一般快速而有拥有如同Ruby的动态性;要具有Lisp般真正的同像性(Homoiconicity)而又有Matlab般熟悉的数学记号;要像Python般通用、像R般在统计分析上得心应手、像Perl般自然地处理字元串、像Matlab般具有强大的线性代数运算能力、像shell般胶水语言的能力,易于学习而又不让真正的黑客感到无聊;还有,它应该是互动式的,同时又是编译型的……
该项目大约于2009年中开始,目前(2012年2月)距离1.0版的发布已经进展到90%。在源码主页上可下载试用。
v0.1.0 14 Feb 2012
v0.2.0 19 Nov 2013
v0.3.0 21 Aug 2014
v0.4.0 8 Oct 2015
v0.5.0 20 Sep 2016
v0.6.0 19 Jun 2017
v1.0.0 8 Aug 2018

功能

主要用于数值计算

特点

  • 免费开源
  • 核心语言非常小。标準库用的是 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]
v[i] = trace((P.'*P)^4)
w[i] = trace((Q.'*Q)^4)
end
std(v)/mean(v), std(w)/mean(w)
end
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net