Julia
閱讀設定
編程範式 | 多範式:多分派、 |
---|---|
設計者 | Jeff Bezanson, Stefan Karpinski, Viral Shah, Alan Edelman等 |
第一次出現 | 2012年[1] |
穩定版本 | 1.4.0[2]
/ 2020年3月21號 |
預覽版本 | 1.4.0-rc2[3]
/ 2020年2月24號 |
系統平台 | x86-64、 |
操作系統 | macOS、 |
軟件授權 | MIT許可證 |
副檔名 | .jl |
網站 | JuliaLang.org |
啟發語言 | |
Matlab, R (語言),同埋Python, Lisp, shell等 | |
Julia係進階通用[7]動態程式語言,佢最初係為咗滿足高效能數值分析同計算科學嘅需要而設計,唔需要分別編譯速度快,[8][9][10][11]都可用喺用戶端同伺服器嘅Web用途[12][13]、低階系統程式設計或用作規約語言。[14]
Julia設計獨特之處有參數多型嘅型別系統、完全動態語言中嘅類型同埋佢多分派嘅核心程式設計法。佢容許並行、平行同分散式計算,並直接呼叫C同Fortran庫而唔用黏合程式碼。
Julia有垃圾回收機制,[15] 使用及早求值,包含咗用喺浮點計算、線性代數、亂數生成同正規表示式符合嘅高效庫。有好多庫可用,其中啲(如用喺快速傅立葉變換嘅庫)已經預先捆綁喺Julia裏面。[16]
史
[編輯]呢個專案大概喺2009年中開始。
功能
[編輯]主要用喺數值計算。
特點
[編輯]- 核心語言極細。標準庫係用Julia語言本身寫嘅。
- 呼叫好多其餘成熟嘅高效能基礎程式碼。如線性代數、亂數生成、快速傅立葉變換、字串處理。(重增加緊……)
- 豐富嘅用喺建立或描述物件嘅類型語法
- 高效能,近靜態編譯型語言。包括用戶自訂類型等
- 為平行計算同分散式計算而設計
- 輕量級協程
- 優雅嘅可延伸嘅類型轉換/提升
- 支援Unicode,包括但不限於UTF-8
- 可直接呼叫C函式(唔需要包裝或係藉助特殊嘅API)
- 有類似shell嘅行程管理能力
- 有類似Lisp嘅巨集同埋其餘超編程工具
例
[編輯]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
睇埋
[編輯]參考資料
[編輯]- ↑ "Why We Created Julia". Julia website. February 2012. 喺7 February 2013搵到.
- ↑ "v1.4.0". Github.com. 2020-03-21. 喺2020-03-24搵到.
- ↑ "v1.4.0-rc2". Github.com. 2020-02-24. 喺2020-03-24搵到.
- ↑ Fischer, Keno (2019-07-22). "Running julia on wasm". 喺2019-07-25搵到.
- ↑ "Download Julia - Currently supported platforms". Julia. 喺2020-03-24搵到.
- ↑ "The Julia Language: A fresh approach to technical computing. Termux/Android". Github. 喺2020-03-24搵到.
- ↑ "The Julia Language" (official website).
General Purpose [..] Julia lets you write UIs, statically compile your code, or even deploy it on a webserver.
- ↑ Bryant, Avi (15 October 2012). "Matlab, R, and Julia: Languages for data analysis". O'Reilly Strata. 原著喺2013-05-24歸檔. 喺2018-09-22搵到.
- ↑ Singh, Vicky (23 August 2015). "Julia Programming Language – A True Python Alternative". Technotification.
- ↑ Krill, Paul (18 April 2012). "New Julia language seeks to be the C for scientists". InfoWorld.
- ↑ Finley, Klint (3 February 2014). "Out in the Open: Man Creates One Programming Language to Rule Them All". Wired.
- ↑ "Escher : With Escher you can build beautiful Web Uls entirely in Julia". Shasi.github.io. 原著喺2016-03-04歸檔. 喺2017-05-31搵到.
- ↑ "Getting Started with Node Julia · Node Julia". Node-julia.readme.io. 喺2017-05-31搵到.
- ↑ Moss, Robert (26 June 2015). "Using Julia as a Specification Language for the Next-Generation Airborne Collision Avoidance System". 原著喺1 July 2015歸檔. 喺29 June 2015搵到.
Airborne collision avoidance system
- ↑ "Suspending Garbage Collection for Performance...good idea or bad idea?". Groups.google.com. 喺2017-05-31搵到.
- ↑ (now available with
using FFTW
in current versions; that dependency is one of many moved out of the standard library to a package because it is GPL licensed, and thus is not included in Julia 1.0 by default.) "Remove the FFTW bindings from Base by ararslan · Pull Request #21956 · JuliaLang/julia". GitHub (英文). 喺2018-03-01搵到. - ↑ Why We Created Julia 互聯網檔案館嘅歸檔,歸檔日期2012-04-23.
連出去
[編輯]維基書本度有本書關於呢個主題:Introducing Julia
- Julia嘅官方網站(英文)
- 原始碼(英文)
- Julia Taiwan 中文文件(臺灣正體)
- Julia Taiwan Facebook 社團
- 中文社群(大陸簡體)
- JuliaCN(大陸簡體)
- 中文文件(大陸簡體)