Julia (程式語言) - 維基百科,自由的百科全書
文章推薦指數: 80 %
Julia是一種進階通用動態程式語言,它最初是為了滿足高效能數值分析和計算科學的需要而設計的,不需要直譯器,速度快,也可用於客戶端和伺服器的Web用途、低階系統程式 ...
Julia(程式語言)
維基百科,自由的百科全書
跳至導覽
跳至搜尋
此條目翻譯品質不佳。
翻譯者可能不熟悉中文或原文語言,也可能使用了機器翻譯,請協助翻譯本條目或重新編寫,並注意避免翻譯腔的問題。
明顯拙劣的機器翻譯請改掛{{d|G13}}提交刪除。
Julia編程範型多範式:多分派、程序式、函數式、元程式設計、多階段編程(英語:Multi-stage_programming)設計者JeffBezanson、AlanEdelman、StefanKarpinski、ViralB.Shah實作者JeffBezanson、StefanKarpinski、ViralB.Shah等[1][2]面市時間2012年,9年前(2012)[3]穩定版本1.6.3
(2021年9月23日,53天前
)
實作語言Julia、C、C++、Scheme、LLVM[4]系統平台x86-64、IA-32、ARMv8(64位元)、CUDA、ARM(32位元)、PowerPC、網頁瀏覽器(JavaScript、WebAssembly)[5]作業系統macOS、Windows、Linux、FreeBSD[6]、Android[7]許可證MIT許可證副檔名.jl網站JuliaLang.org啟發語言
C[3]
Dylan[8]
Lisp[3]
Lua[9]
Mathematica[3](嚴格說是其Wolfram語言[3][10])
MATLAB[3]
Perl[9]
Python[9]
R[3]
Ruby[9]
Scheme[11]
維基教科書中有關zh:IntroducingJulia的文字
Julia是一種進階通用[12]動態程式語言,它最初是為了滿足高效能數值分析和計算科學的需要而設計的,不需要直譯器,速度快[13][14][15][16],也可用於客戶端和伺服器的Web用途[17][18]、低階系統程式設計或用作規約語言[19]。
Julia設計的獨特之處包括,參數多型的型別系統,完全動態語言中的類型,以及它多分派的核心程式設計範式。
它允許並行、並列和分散式計算,並直接呼叫C和Fortran庫而不使用粘合代碼。
Julia擁有垃圾回收機制[20],使用及早求值,包含了用於浮點計算、線性代數、亂數生成和正規表示式匹配的高效庫。
有許多庫可以使用,其中一些(如用於快速傅立葉變換的庫)已經預先捆綁在Julia裡[21]。
目次
1歷史
2功能
3特點
4示例
4.1生成Mandelbrot集合
4.2隨機矩陣統計
5參考資料
6參閱
7外部連結
歷史[編輯]
一群擁有各種語言豐富編程經驗的Matlab進階使用者,對現有的科學計算編程工具感到不滿——這些軟體對自己專長的領域表現得非常棒,但在其它領域卻非常糟糕。
他們想要的是一個開源的軟體,它要像C語言一般快速而又擁有如同Ruby的動態性;要具有Lisp般真正的同像性而又有Matlab般熟悉的數學記號;要像Python般通用、像R般在統計分析上得心應手、像Perl般自然地處理字串、像Matlab般具有強大的線性代數運算能力、像shell般膠水語言的能力,易於學習而又不讓真正的駭客感到無聊;還有,它應該是互動式的,同時又是編譯型的。
[22]
該專案大約於2009年中開始。
功能[編輯]
主要用於數值計算。
特點[編輯]
核心語言非常小。
標準庫用的是Julia語言本身寫的
呼叫許多其它成熟的高效能基礎代碼。
如線性代數、亂數生成、快速傅立葉變換、字串處理。
豐富的用於建立或描述物件的類型語法
高效能,接近於靜態編譯型語言。
包括使用者自訂類型等
為平行計算和分散式計算而設計
輕量級協程
優雅的可延伸的類型轉換/提升
支援Unicode,包括但不限於UTF-8
可直接呼叫C函式(不需要包裝或是藉助特殊的API)
有類似shell的行程管理能力
有類似Lisp的巨集以及其它元程式設計工具
可與Jupyternotebook一起使用
範例[編輯]
生成Mandelbrot集合[編輯]
functionmandel(z)
c=z
max=80
forn=1:max
ifabs(z)>2
returnn-1
end
z=z^2+c
end
returnmax
end
隨機矩陣統計[編輯]
usingLinearAlgebra:tr
usingStatistics#导入std,mean等函数
functionrandmatstat(t)
n=5
v=zeros(t)
w=zeros(t)
fori=1:t
a=randn(n,n)
b=randn(n,n)
c=randn(n,n)
d=randn(n,n)
P=[abcd]
Q=[ab;cd]
v[i]=tr((P'*P)^4)
w[i]=tr((Q'*Q)^4)
end
std(v)/mean(v),std(w)/mean(w)
end
參考資料[編輯]
^LICENSE.md.GitHub.[2020-03-24].(原始內容存檔於2021-01-23).
^ContributorstoJuliaLang/julia.GitHub.[2020-03-24].(原始內容存檔於2021-01-23).
^3.03.13.23.33.43.53.6WhyWeCreatedJulia.Juliawebsite.February2012[2013-02-07].(原始內容存檔於2019-02-19).
^Julia.Julia.NumFocusproject.[9December2016].(原始內容存檔於2017-02-21).Julia'sBaselibrary,largelywritteninJuliaitself,alsointegratesmature,best-of-breedopensourceCandFortranlibrariesfor...
^Fischer,Keno.Runningjuliaonwasm.2019-07-22[2019-07-25].(原始內容存檔於2020-11-21).
^DownloadJulia-Currentlysupportedplatforms.Julia.[2020-03-24].(原始內容存檔於2021-01-26).
^TheJuliaLanguage:Afreshapproachtotechnicalcomputing.Termux/Android.Github.[2020-03-24].(原始內容存檔於2020-12-27).
^Stokel-Walker,Chris.Julia:TheGoldilockslanguage.Increment.Stripe.[23August2020].
^9.09.19.29.3Home·TheJuliaLanguage.docs.julialang.org.[2018-08-15].(原始內容存檔於2021-01-11)(英語).
^ProgrammingLanguageNetwork.GitHub.[6December2016].(原始內容存檔於2020-12-20).
^JuliaCon2016.JuliaCon.[6December2016].(原始內容存檔於2021-02-03).Hehasco-designedtheprogramminglanguageScheme,whichhasgreatlyinfluencedthedesignofJulia
^TheJuliaLanguage(officialwebsite).[2018-09-22].(原始內容存檔於2017-02-21).GeneralPurpose[..]JulialetsyouwriteUIs,staticallycompileyourcode,orevendeployitonawebserver.
^Bryant,Avi.Matlab,R,andJulia:Languagesfordataanalysis.O'ReillyStrata.15October2012[2018-09-22].(原始內容存檔於2013-05-24).
^Singh,Vicky.JuliaProgrammingLanguage–ATruePythonAlternative.Technotification.23August2015[2018-09-22].(原始內容存檔於2020-11-09).
^Krill,Paul.NewJulialanguageseekstobetheCforscientists.InfoWorld.18April2012[2018-09-22].(原始內容存檔於2014-09-13).
^Finley,Klint.OutintheOpen:ManCreatesOneProgrammingLanguagetoRuleThemAll.Wired.3February2014[2018-09-22].(原始內容存檔於2016-12-20).
^Escher :WithEscheryoucanbuildbeautifulWebUlsentirelyinJulia.Shasi.github.io.[2017-05-31].(原始內容存檔於2016-03-04).
^GettingStartedwithNodeJulia·NodeJulia.Node-julia.readme.io.[2017-05-31].(原始內容存檔於2020-10-21).
^Moss,Robert.UsingJuliaasaSpecificationLanguagefortheNext-GenerationAirborneCollisionAvoidanceSystem.26June2015[29June2015].(原始內容存檔於2015-07-01).Airbornecollisionavoidancesystem
^SuspendingGarbageCollectionforPerformance...goodideaorbadidea?.Groups.google.com.[2017-05-31].(原始內容存檔於2011-01-22).
^(nowavailablewithusingFFTWincurrentversions;thatdependencyisoneofmanymovedoutofthestandardlibrarytoapackagebecauseitisGPLlicensed,andthusisnotincludedinJulia1.0bydefault.)RemovetheFFTWbindingsfromBasebyararslan·PullRequest#21956·JuliaLang/julia.GitHub.[2018-03-01].(原始內容存檔於2019-02-16)(英語).
^WhyWeCreatedJulia.[2012-04-19].(原始內容存檔於2016-01-18).
參閱[編輯]
Matlab
GNUOctave
R語言
Mathematica
SageMath
外部連結[編輯]
維基教科書中的相關電子教學:IntroducingJulia
官方網站(英文)
原始碼(頁面存檔備份,存於網際網路檔案館)(英文)
中文社群(頁面存檔備份,存於網際網路檔案館)(簡體中文)
中文文件(頁面存檔備份,存於網際網路檔案館)(簡體中文)
閱論編可微分計算概論
可微分編程
神經圖靈機(英語:NeuralTuringmachine)
可微分神經電腦(英語:Differentiableneuralcomputer)
自動微分
神經形態工程(英語:Neuromorphicengineering)
圖型識別
概念
梯度下降
電纜理論(英語:Cabletheory)
聚類分析
迴歸分析
過適
對抗機器學習(英語:Adversarialmachinelearning)
運算學習理論(英語:Computationallearningtheory)
關注(英語:Attention(machinelearning))
卷積
損失函式
反向傳播演算法
啟用功能
Softmax
S函式
線性整流函式
正則化
資料集
程式語言
Python
Julia
應用
機器學習
人工神經網路
深度學習
科學計算
人工智慧
深偽技術
硬體
TPU
VPU(英語:Visionprocessingunit)
憶阻器
SpiNNaker(英語:SpiNNaker)
軟體庫
TensorFlow
PyTorch
Keras
Theano
實現音訊-視覺
AlexNet
WaveNet
人體圖像合成
HWR
OCR
語音合成
語音辨識
臉部辨識系統
AlphaFold
DALL-E(英語:DALL-E)
語文
Word2vec
Transformer(英語:Transformer(machinelearningmodel))
BERT
NMT
辯論者專案(英語:ProjectDebater)
華生
GPT-3
決策
AlphaGo
Q學習
SARSA(英語:State–action–reward–state–action)
OpenAIFive(英語:OpenAIFive)
自動駕駛汽車
MuZero
人物
AlexGraves(英語:AlexGraves(computerscientist))
伊恩·古德費洛
約書亞·本希奧
傑弗里·辛頓
楊立昆
吳恩達
傑米斯·哈薩比斯
DavidSilver(英語:DavidSilver(computerscientist))
李飛飛
機構
DeepMind
OpenAI
MITCSAIL
Mila(英語:Mila(researchinstitute))
GoogleBrain
FAIR
主題
電腦編程
技術
類屬
人工神經網路
機器學習
閱論編程式語言按範式程序式
FORTRAN
FORTRAN77
Fortran90
COBOL
ALGOL60
BASIC
GW-BASIC
QBasic
PL/I
ALGOL68
Forth
Pascal
TurboPascal
C
C89
C99
Modula-2
Ada
occam
Oberon
Go
物件導向
Simula
Smalltalk
CLU
C++
C++98
C++11
Objective-C
Eiffel
Self
CLOS
ObjectPascal
VisualBasic
Oberon-2(英語:Oberon-2)
Ada95
Java
C#
Fortran2003
多範式
Modula-3
Dylan
Python
Lua
JavaScript
Ruby
Rebol
D
Factor
Scala
F#
Haxe
Nim
Rust
Dart
Julia
F*
Swift
函數式
LISP
Scheme
CommonLisp
Racket
Clojure
Logo
APL/J
ML
StandardML
OCaml
Miranda
Erlang
Elixir
Haskell
SAC
邏輯式
Prolog
AnsProlog
Datalog
Mercury
Curry
手稿語言ECMA-262
ECMAScript
JavaScript
JScript
Node.js
CoffeeScript
TypeScript
Elm
PureScript
Reason
動態語言
SNOBOL
Icon
REXX
Perl
Raku
Tcl/Tk
newLISP
Python
Lua
Ruby
PHP
Hack
VBScript
JSP
Io
Shell語言
sh
ash
bash
ksh
zsh
csh
tcsh
sed
AWK
PowerShell
特定平台.NET
C#
VisualC#
C++/CLI
F#
PowerShell
IronPython
IronScheme(英語:IronScheme)
VB.NET
SmallBasic
JVM
Java
AspectJ(英語:AspectJ)
Scala
Clojure
JRuby
Jython
Kawa(英語:Kawa(Schemeimplementation))
Groovy
Kotlin
Xcode
Swift
Objective-C
AppleScript
特定領域科學計算
Speakeasy(英語:Speakeasy(computationalenvironment))
IDL
GDL
Maxima
Maple
MATLAB
Octave
Scilab
Wolfram
R
SageMath
Julia
GPU計算
GLSL
HLSL
OpenCL
CUDA
Futhark
資料查詢
SQL
PL/SQL
T-SQL
SQL/PSM(英語:SQL/PSM)
xBase(英語:xBase)
LINQ
XQuery(英語:XQuery)
XPath
rasql(英語:rasdaman#RasterQueryLanguage)
視覺化
Squeak
Scratch
Snap!
LabVIEW
Simulink
AppInventor
音視設計
Processing
SuperCollider
PureData
ChucK
其它
組合語言
MUMPS(英語:MUMPS)
PostScript
WebAssembly
目錄
列表
歷史
比較(英語:Comparisonofprogramminglanguages)
時間線(英語:Timelineofprogramminglanguages)
閱論編數值分析軟體開源軟體
ADMB
Euler
FreeFem++
FreeMat
Genius
Gmsh
GNUOctave
gretl
Julia
Maxima
OpenFOAM
R
SageMath
SALOME
ScicosLab
Scilab
Spyder
專有軟體
Chapel
DADiSP
Fortress
GAUSS
LabVIEW
Maple
Mathcad
MATLAB
Mathematica
Speakeasy(英語:Speakeasy(computationalenvironment))
VisSim
X10
列表(英語:Listofnumericalanalysissoftware) ·比較(英語:Comparisonofnumericalanalysissoftware)
取自「https://zh.wikipedia.org/w/index.php?title=Julia_(编程语言)&oldid=68493788」
分類:數值分析軟體程序設計語言陣列編程語言物件導向的程式語言面向文本程式語言同像性程式語言2012年軟體2012年建立的程式語言隱藏分類:CS1英語來源(en)粗劣翻譯維基百科和維基數據上的官方網站不同
導覽選單
個人工具
沒有登入討論貢獻建立帳號登入
命名空間
條目討論
臺灣正體
已展開
已摺疊
不转换简体繁體大陆简体香港繁體澳門繁體大马简体新加坡简体臺灣正體
查看
閱讀編輯檢視歷史
更多
已展開
已摺疊
搜尋
導航
首頁分類索引特色內容新聞動態近期變更隨機條目資助維基百科
說明
說明維基社群方針與指引互助客棧知識問答字詞轉換IRC即時聊天聯絡我們關於維基百科
工具
連結至此的頁面相關變更上傳檔案特殊頁面靜態連結頁面資訊引用此頁面維基數據項目
列印/匯出
下載為PDF可列印版
其他專案
維基共享資源
其他語言
العربيةCatalàČeštinaDeutschEnglishEsperantoEspañolفارسیFrançaisGalegoItaliano日本語한국어മലയാളംPortuguêsРусскийСрпски/srpskiதமிழ்TürkçeУкраїнська粵語
編輯連結
延伸文章資訊
- 1身為資料科學家,R、Python 與Julia 該怎麼選? - 知勢
Julia 是一種動態程式語言,最初是為了滿足高效能的數值分析和科學計算而設計的。為了達到效能的需求, Julia 具備即時編譯的效能。換句話說,Julia 集結 ...
- 2Julia 程式設計:新世代資料科學與數值運算語言 - 博客來
Julia語言,作為⼀一個新興語⾔言,同時兼有效能以及開發彈性,吸取了各家語言的優點,並且在語⾔及編譯器技術上的設計,讓Julia成為了兼有效能及彈性的優美語言。Julia ...
- 3第一屆Julia 程式語言學習馬拉松|Accupass 活動通
Julia 是一種注重高效率的動態程式語言,擁有高階且彈性的語法,具備即時編譯的效能。集結 Python 的簡潔優雅、R 多樣的功能與 C++ 的效能及模組化於一身。
- 4Julia (程式語言) - 維基百科,自由的百科全書
Julia是一種進階通用動態程式語言,它最初是為了滿足高效能數值分析和計算科學的需要而設計的,不需要直譯器,速度快,也可用於客戶端和伺服器的Web用途、低階系統程式 ...
- 5Julia 中文社区
Julia 中文社区的主页。Julia 中文社区是一个社区驱动、致力于Julia 编程语言中文支持的开源组织。