コンテンツにスキップ

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

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Julia
Julia
Juliaのロゴ
パラダイム オブジェクト指向プログラミング関数型プログラミング命令型プログラミング、マルチパラダイムプログラミング、ベクトル化メタプログラミング手続き型プログラミング並列計算多重ディスパッチ ウィキデータを編集
登場時期 2012年8月23日 (13年前) (2012-08-23)
開発者 Jeff Bezanson、Stefan Karpinski、Alan Edelman、Viral B. Shah ウィキデータを編集
最新リリース 1.12.6/ 2026-4-9
型付け 付随型アノテーション及び型推論動的プログラミング言語
影響を受けた言語 MATLABPythonLISPC言語FORTRANNumPyLuaR言語SchemePerlRuby ウィキデータを編集
プラットフォーム LinuxMicrosoft WindowsmacOS ウィキデータを編集
ライセンス MITライセンス
ウェブサイト
拡張子 jl ウィキデータを編集
テンプレートを表示

Julia(ジュリア)は、科学技術計算および数値解析を主な用途として設計された汎用プログラミング言語である[1][2][3]。2012年にMITの研究者らによって公開された。動的型付けを採用し、LLVMを基盤とするJITコンパイル方式により実行時にネイティブコードを生成する[4]

高水準言語の記述性とコンパイル言語に匹敵する性能を志向して設計されており[4]並列計算分散処理C言語およびFortranとの相互運用性を備えるオープンソースソフトウェアである。

特徴

[編集]

相互運用性

[編集]

Juliaには、@ccall マクロを使用してC言語Fortranのライブラリを呼び出すための組み込みサポートがある。外部ライブラリを使用し、Python[5]R言語[6]C++[7]Java[8]SQL[9][10][11][12]などと相互運用し、関数を呼び出したり呼び出されたりすることもできる。

C言語の printf を呼び出す例。

@ccall printf("Hello, World!\n"::Cstring)::Cvoid

Python とは同じ動的型付けのプログラミング言語であり類似点が多いため、相互運用がしやすい。ただし、NumPyはC言語と同じくrow-majorで配列の添え字は0から始まるが、JuliaはFortranと同じくcolumn-majorで配列の添え字は1から始まる[13]。下記は Julia の側から PythonCall を使用した例である[14]

using PythonCall
np = pyimport("numpy")
print(np.array([1, 2, 3], dtype=np.float32))

同様に JuliaCall により、Python の側から Julia を呼び出すことも可能であり、Julia は計算が高速にできるので、計算量が多い部分だけを Julia により計算するということも可能である。下記は Python の側から JuliaCall を使用した例で、Julia の多次元配列と NumPy を組み合わせて使用している[15]

from juliacall import Main as jl
import numpy as np
np.array(jl.rand(range(10), 3, 5))

コード例

[編集]

Hello world

[編集]

JuliaではHello worldを次のように書く。

println("Hello, World!")

行列積

[編集]

次のコードはJuliaで書いた行列AとBの行列積である。

A = randn(10, 10)
B = randn(10, 10)
C = A * B

このように、MATLABや、PythonのライブラリであるNumPyなどと同様に、数学的な操作を簡潔に書けるうえに、行列積に関しては単にBLASのライブラリ(デフォルトはOpenBLAS[16])を呼び出しているだけだが、行列積を含めて多くの機能がC言語Fortranと同程度の速度で動作する[17]

沿革

[編集]
  • 2009年に開発が始まり、2012年2月にオープンソースとして公表された[18][19]
  • 2018年8月8日にバージョン1.0がリリースされ[20][21][22]、2020年8月1日にバージョン1.5がリリースされた[23]
  • 2018年12月、開発者の3人がSIAM(アメリカ工業及び応用数学会)によるジェームズ・H・ウィルキンソン賞を受賞したことが発表された[24]
  • 2025年3月、Google Colabにおける公式サポートが開始した[25]

関連項目

[編集]

脚注

[編集]
  1. The Julia Language”. 2014年1月17日閲覧。
  2. Bryant, Avi (2012年10月). Matlab, R, and Julia: Languages for data analysis”. O'Reilly Strata. 2013年2月7日閲覧。
  3. Krill, Paul. New Julia language seeks to be the C for scientists”. InfoWorld. 2013年2月7日閲覧。
  4. 1 2 Julia: A Fast Dynamic Language for Technical Computing (PDF) (2012年). 2014年1月17日閲覧。
  5. PythonCall & JuliaCall, JuliaPy, (2023-10-29) 2023年10月30日閲覧。
  6. RCall.jl, JuliaInterop, (2023-10-16) 2023年10月30日閲覧。
  7. CxxWrap, JuliaInterop, (2023-10-28) 2023年10月30日閲覧。
  8. Julia and Spark, Better Together | juliabloggers.com”. juliabloggers.com. 2024年6月9日閲覧。
  9. Foster, Claire (2023-10-23), SQLREPL.jl 2023年10月31日閲覧。
  10. Noh, WooKyoung (2023-10-18), Octo.jl 2023年10月31日閲覧。
  11. Usage Guide · FunSQL.jl”. mechanicalrabbit.github.io. 2023年10月31日閲覧。
  12. Hood, Doug. Using Julia with Oracle Database”. blogs.oracle.com. 2024年6月9日閲覧。
  13. Single- and multi-dimensional Arrays · The Julia Language”. docs.julialang.org. 2024年6月14日閲覧。
  14. The Julia module PythonCall - Guide · PythonCall & JuliaCall”. juliapy.github.io. 2024年6月9日閲覧。
  15. The Python module JuliaCall - Guide · PythonCall & JuliaCall”. juliapy.github.io. 2024年6月9日閲覧。
  16. julia/deps/openblas.mk at v1.10.4 · JuliaLang/julia”. 2024年6月10日閲覧。
  17. Basic Comparison of Various Computing Languages (2011年1月5日). 2022年1月5日閲覧。
  18. Why We Created Julia (2012年2月). 2013年2月7日閲覧。
  19. Gibbs, Mark (2013年1月9日). Gear head”. Network World. 2013年2月7日閲覧。
  20. Julia 1.0”. The Julia Language (2018年8月8日). 2018年8月12日閲覧。
  21. プログラミング言語「Julia 1.0」リリース”. OSDNマガジン (2018年8月8日). 2018年8月12日閲覧。
  22. MIT-created programming language Julia 1.0 debuts”. MIT News (2018年8月27日). 2018年9月1日閲覧。
  23. Download Julia”. julialang.org. 2020年8月10日閲覧。
  24. Julia language co-creators win James H. Wilkinson Prize for Numerical Software”. MIT News (2018年12月26日). 2021年12月19日閲覧。
  25. Julia in Colab (2025年3月6日). 2025年7月21日閲覧。

参考文献

[編集]

洋書

[編集]
  • 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. 
  • Ben Lauwens and Allen B. Downey: Think Julia: How to Think Like a Computer Scientist, Oreilly & Associates Inc, ISBN 978-1-49204503-8 (2019年5月).
  • Eric Darve and Mary Wootters: Numerical Linear Algebra with Julia, SIAM, ISBN 978-1-611976-54-0 (2021).
  • Tobin A Driscoll and Richard J. Braun: Fundamentals of Numerical Computation: Julia Edition, SIAM, ISBN 978-1-611977-00-4 (2022年8月).
  • Noel Kalicharan: Julia - Bit by Bit: Programming for Beginners, Springer, ISBN 978-3-030-73935-5 (2021).
  • C. T. Kelley: Solving Nonlinear Equations with Iterative Methods: Solvers and Examples in Julia,SIAM,ISBN 978-1-611977-26-4(2022年).
  • Clemens Heitzinger: Algorithms with Julia, Springer, ISBN 978-3-031-16559-7 (2022).
  • Kenneth Lange: Algorithms from THE BOOK (2nd Ed.), SIAM, ISBN 978-1-61197-838-4 (2025).
  • James V Lambers, Amber C Sumner Mooney, Vivian Ashley Montiforte and James Quinlan: Explorations in Numerical Analysis and Machine Learning with Julia, World Scientific, ISBN 978-9-81981948-5 (2025年10月25日).

和書

[編集]
  • Joshi, Anshul 著、石井一夫、岩中公紀、太田博三、大前奈月、兼松正人、古徳純一、菅野剛、高尾克也、中村和敬 訳『Juliaデータサイエンス―Juliaを使って自分でゼロから作るデータサイエンス世界の探索』NTS、2017年(原著2016年)。 
  • Kamiński, Bogumił、Szufel, Przemysław 著、中田秀基 訳『Juliaプログラミングクックブック 言語仕様からデータ分析、機械学習、数値計算まで』オライリー・ジャパン、2019年10月。ISBN 978-4-87311-889-5 
  • 進藤裕之、佐藤建太:「1から始める Juliaプログラミング」、コロナ社、ISBN 978-4-33902905-5(2020年3月26日)。
  • 石井一夫:「基礎から学ぶJulia 基本文法からデータサイエンスまで」、SCC(エスシーシー)、ISBN 978-4-88647-022-5(2021年1月25日)。
  • Tanmay Bakshi、菅原 宏治 (訳):「天才プログラマータンメイが教える Julia超入門」、東京化学同人、ISBN 978-4-8079-2021-1(2021年2月14日)。
  • 須山敦志:「Juliaで作って学ぶ ベイズ統計学」、講談社、ISBN 978-4-06-525980-1 (2021年11月24日)。
  • 永井佑紀:「1週間で学べる! Julia数値計算プログラミング」、講談社 (KS情報科学専門書)、ISBN 978-4-06-528282-3(2022年6月23日)。
  • 後藤俊介:「実践Julia入門」、技術評論社、ISBN 978-4-297-13350-4(2023年3月15日)。
  • 佐藤建太:「Juliaプログラミング大全」、講談社、ISBN 978-4-06-531819-5 (2023年6月1日)。
  • 小高知宏:「Juliaによる数値計算とシミュレーション」、オーム社、ISBN 978-4-27423049-3 (2023年6月20日)。
  • 永井佑紀:「Juliaではじめる数値計算入門」、技術評論社、ISBN 978-4-297-14128-8 (2024年5月13日).

外部リンク

[編集]