Julia (プログラミング言語)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動
Julia
Julia
Juliaのロゴ
パラダイム オブジェクト指向プログラミング関数型言語命令型プログラミング、マルチパラダイムプログラミング、配列プログラミング ウィキデータを編集
登場時期 2012年(7年前) (2012
開発者 Jeff Bezanson、Stefan Karpinski、Alan Edelman、Viral B. Shah ウィキデータを編集
最新リリース 1.2.0/ 2019年8月20日(2か月前) (2019-08-20[1]
型付け 付随型アノテーション及び型推論動的プログラミング言語
影響を受けた言語 MATLABPythonLISP ウィキデータを編集
プラットフォーム LinuxMicrosoft WindowsMacOS ウィキデータを編集
ライセンス MIT License
ウェブサイト julialang.org
拡張子 jl ウィキデータを編集
テンプレートを表示

Julia(ジュリア)は、汎用プログラミング言語水準から高度の計算科学数値解析水準まで対処するよう設計された高水準言語かつ仕様記述言語、及び動的プログラミング言語である[2][3][4]並行計算並列計算分散コンピューティング、及びAdapter パターン不要でC言語FORTRANへのForeign function interfaceに対応している。ガベージコレクション[5]を行い先行評価を用いるほか、浮動小数点数計算、線型代数学高速フーリエ変換正規表現照合のライブラリを利用できる。

LLVMコンパイラフレームワークを用いてC言語C++Schemeで組まれており、標準ライブラリの殆どは独自に実装した[6]。2009年に開発が始まり、2012年2月にオープンソースとして公表された[7][8]。実装の最も注目すべき特徴は速度であり、完全に最適化したC言語(PythonやR言語よりも桁違いに速い場合が多い)と比べて計算パフォーマンスの低下は半分程度であることが知られている[6]

2018年8月8日にバージョン1.0がリリースされた[9][10][11]

特徴[編集]

コード例[編集]

Hello world[編集]

次のコードはJuliaで書いたHello worldプログラムである。

println("Hello, World")

Julia開発の契機と他言語(AI系言語)との相違点[編集]

Julia は、2000年代から2010年代にかけて、MIT(米マサチューセッツ工科大学)の教授であるAlan Edelman氏と彼の同僚たちが中心となって開発したコンパイル方式の汎用コンピューティング言語であり、動的プログラミング言語である[12]。そして、PythonやR言語よりも新しいAI(人工知能)記述言語としても、いま大きな脚光を浴びつつある[13]

Edelman氏は、MITのJulia Labの責任者で、プログラミング言語「Julia」を管理する企業Julia Computingの共同創設者でもある。新統合型の動的プログラミング言語とは、いわゆる「2つの言語」問題を解決し、統合することを目指そうとしたという意味である。MIT学派がそれを実際に完全に解決したか否かは別問題だが、それを目指して実現できる道筋を示したことが画期的である。この「2つの言語」問題とは、人間が比較的簡単に記述できる言語か、コンピュータが比較的簡単に実行できる言語のどちらか1つしか選べないという二律背反、ジレンマの問題である。この二律背反を解決し、「2つの言語」を統合した汎用コンピューティング言語Juliaを開発した動機・契機を、Jeff Bezanson, Alan EdelmanらMIT学派は”Greedy(貪欲さ、飽くなき探求心)”と表現している[14]。開発者にとってのJuliaのメリットは、「2つの言語」問題に対処できる道筋を示したことである。

関連項目[編集]

脚注[編集]

  1. ^ Releases”. GitHub. 2019年10月13日閲覧。
  2. ^ The Julia Language”. 2014年1月17日閲覧。
  3. ^ Bryant, Avi (2012年10月). “Matlab, R, and Julia: Languages for data analysis”. O'Reilly Strata. 2013年2月7日閲覧。
  4. ^ Krill, Paul. “New Julia language seeks to be the C for scientists”. InfoWorld. 2013年2月7日閲覧。
  5. ^ Suspending Garbage Collection for Performance...good idea or bad idea?”. 2017年5月25日閲覧。
  6. ^ a b Julia: A Fast Dynamic Language for Technical Computing (PDF)” (2012年). 2014年1月17日閲覧。
  7. ^ Why We Created Julia” (2012年2月). 2013年2月7日閲覧。
  8. ^ Gibbs, Mark (2013年1月9日). “Gear head”. Network World. 2013年2月7日閲覧。
  9. ^ Julia 1.0”. The Julia Language (2018年8月8日). 2018年8月12日閲覧。
  10. ^ プログラミング言語「Julia 1.0」リリース”. OSDNマガジン (2018年8月8日). 2018年8月12日閲覧。
  11. ^ MIT-created programming language Julia 1.0 debuts”. MIT News (2018年8月27日). 2018年9月1日閲覧。
  12. ^ https://julialang.org/blog/2012/02/why-we-created-julia
  13. ^ 佐藤純一, 鷲沢嘉一、「動的プログラミング言語Juliaの紹介」 『映像情報メディア学会誌』 2017年 71巻 1号 p.74-77, doi:10.3169/itej.71.74, 映像情報メディア学会
  14. ^ https://julialang.org/blog/2012/02/why-we-created-julia

参考文献[編集]

洋書[編集]

  • Nagar, Sandeep (2017). Beginning Julia Programming-For Engineers and Scientists. Springer. 
  • Bezanson, J; Edelman, A; Karpinski, S; Shah, V. B (2017). Julia: A fresh approach to numerical computing. 59. SIAM Review. pp. 65-98. 

和書[編集]

  • Kamiński, Bogumił、Szufel, Przemysław『Juliaプログラミングクックブック 言語仕様からデータ分析、機械学習、数値計算まで』中田秀基訳、オライリー・ジャパン、2019年10月。
  • Joshi, Anshul『Juliaデータサイエンス―Juliaを使って自分でゼロから作るデータサイエンス世界の探索』石井一夫、岩中公紀、太田博三、大前奈月、兼松正人、古徳純一、菅野剛、高尾克也、中村和敬訳、NTS、2017年(原著2016年)。

外部リンク[編集]