Julia 是一個(gè)面向科學(xué)計(jì)算的高性能動(dòng)態(tài)高級(jí)程序設(shè)計(jì)語(yǔ)言,JIT高性能編譯器,語(yǔ)法和其他編程語(yǔ)言類似,擁有豐富的函數(shù)庫(kù),提供了數(shù)字精度、精致的增幅器(sophisticated amplifier)和分布式并行運(yùn)行方式。核心函數(shù)庫(kù)等大多數(shù)庫(kù)是由Julia編寫,但也用成熟的C和FORTRAN庫(kù)來(lái)處理線性代數(shù)、隨機(jī)數(shù)產(chǎn)生和字符串處理等問(wèn)題。Julia語(yǔ)言可定義函數(shù)并且根據(jù)用戶自定義的參數(shù)類型組合再進(jìn)行重載。
【功能特點(diǎn)】
1、JIT高性能編譯器:使用的JIT(Just-in-Time)實(shí)時(shí)編譯器很有效地提高了它的運(yùn)行效率,在某些地方甚至能比得上C和C++。
克服了高級(jí)語(yǔ)言一直難以逾越的難關(guān):標(biāo)量算數(shù)循環(huán)(在pi summation上就能體現(xiàn)出來(lái)。)。Matlab的浮點(diǎn)運(yùn)算JIT和 V8 JS引擎對(duì)此也處理得很好。但JS不支持LAPACK等線性代數(shù)庫(kù)導(dǎo)致了在矩陣運(yùn)算中的低性能,而Julia有比較多的方法消除負(fù)載(overhead),使得它可以輕松支持任何函數(shù)庫(kù)。
矩陣統(tǒng)計(jì)的Julia代碼雖然性能上比不上C++但卻要簡(jiǎn)潔得多。然而,規(guī)范和編制太過(guò)隨意可能會(huì)在將來(lái)成為一個(gè)問(wèn)題。
2、功能強(qiáng)大的并行處理和云計(jì)算:為分布式計(jì)算提供很多關(guān)鍵模塊,使得它可以更加靈活地支持多種并行處理。
將提供更加完整的性能支持云計(jì)算操作,比如分享和編輯,包括數(shù)據(jù)管理、數(shù)據(jù)挖掘和可視化操作等。它還允許用戶操作大數(shù)據(jù)類型而不用關(guān)心數(shù)據(jù)操作行為。
3、免費(fèi)、開源和Library Friendly:Julia的核心代碼遵循MIT協(xié)議,而其他庫(kù)各自遵循GPL/LGPL/BSD等協(xié)議。用戶還可以方便地將Julia作為核心功能共享庫(kù)與C/FORTRAN代碼聯(lián)合使用。