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

Julia
Julia
Juliaのロゴ
パラダイム オブジェクト指向プログラミング、関数型プログラミング、命令型プログラミング、マルチパラダイムプログラミング、ベクトル化、メタプログラミング、手続き型プログラミング、並列計算、多重ディスパッチ ウィキデータを編集
登場時期 2012年8月23日(14年前) (2012-08-23)
開発者 Jeff Bezanson、Stefan Karpinski、Alan Edelman、Viral B. Shah ウィキデータを編集
最新リリース 1.13.0/ 2026-09-09
型付け 付随型アノテーション及び型推論の動的プログラミング言語
影響を受けた言語 MATLAB、Python、LISP、C言語、FORTRAN、NumPy、Lua、R言語、Scheme、Perl、Ruby ウィキデータを編集
プラットフォーム Linux、Microsoft Windows、macOS ウィキデータを編集
ライセンス MITライセンス
ウェブサイト
拡張子 jl ウィキデータを編集
テンプレートを表示

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

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

特徴

相互運用性

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

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

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

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

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

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

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)を呼び出しているだけだが、行列積を含めて多くの機能がC言語やFortranと同程度の速度で動作する。

沿革

関連項目

脚注

  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 By Example”. juliabyexample.helpmanual.io. 2026年8月26日閲覧。
  17. ↑ “julia/deps/openblas.mk at v1.10.4 · JuliaLang/julia”. 2024年6月10日閲覧。
  18. ↑ “Basic Comparison of Various Computing Languages” (2011年1月5日). 2022年1月5日閲覧。
  19. ↑ “Why We Created Julia” (2012年2月). 2013年2月7日閲覧。
  20. ↑ Gibbs, Mark (2013年1月9日). “Gear head”. Network World. 2013年2月7日閲覧。
  21. ↑ “Julia 1.0”. The Julia Language (2018年8月8日). 2018年8月12日閲覧。
  22. ↑ 末岡洋子 (2018年8月8日). “プログラミング言語「Julia 1.0」リリース”. OSDNマガジン. 2025年4月6日時点のオリジナルよりアーカイブ。2018年8月12日閲覧。
  23. ↑ “MIT-created programming language Julia 1.0 debuts”. MIT News (2018年8月27日). 2018年9月1日閲覧。
  24. ↑ “Download Julia”. julialang.org. 2020年8月10日閲覧。
  25. ↑ “Julia language co-creators win James H. Wilkinson Prize for Numerical Software”. MIT News (2018年12月26日). 2021年12月19日閲覧。
  26. ↑ “Julia in Colab” (2025年3月6日). 2025年7月21日閲覧。

参考文献

洋書

和書

外部リンク

公式サイト

その他