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

相關詞條

相關搜尋

熱門詞條