Julia (プログラミング言語)
From Wikipedia, the free encyclopedia
| パラダイム |
オブジェクト指向プログラミング、関数型プログラミング、命令型プログラミング、マルチパラダイムプログラミング、ベクトル化、メタプログラミング、手続き型プログラミング、並列計算、多重ディスパッチ |
|---|---|
| 登場時期 | 2012年8月23日 |
| 開発者 |
Jeff Bezanson、Stefan Karpinski、Alan Edelman、Viral B. Shah |
| 最新リリース | 1.12.5/ 2026年2月9日[1] |
| 型付け | 付随型アノテーション及び型推論の動的プログラミング言語 |
| 影響を受けた言語 |
MATLAB、Python、LISP、C言語、FORTRAN、NumPy、Lua、R言語、Scheme、Perl、Ruby |
| プラットフォーム |
Linux、Microsoft Windows、macOS |
| ライセンス | MITライセンス |
| ウェブサイト | |
| 拡張子 |
jl |
Julia(ジュリア)は、科学技術計算および数値解析を主な用途として設計された汎用プログラミング言語である[2][3][4]。2012年にMITの研究者らによって公開された。動的型付けを採用し、LLVMを基盤とするJITコンパイル方式により実行時にネイティブコードを生成する[5]。
高水準言語の記述性とコンパイル言語に匹敵する性能を志向して設計されており[5]、並列計算、分散処理、C言語およびFortranとの相互運用性を備えるオープンソースソフトウェアである。
相互運用性
- 多重ディスパッチ
- 動的型付け
- C言語などの静的型付き言語に迫る速い実行速度
- パッケージマネージャが組み込まれている
- Lispのようなマクロやその他のメタプログラミング機能
- C言語とFortranのコードの呼び出し
Juliaには、@ccall マクロを使用してC言語やFortranのライブラリを呼び出すための組み込みサポートがある。外部ライブラリを使用し、Python[6]、R言語[7]、C++[8]、Java[9]、SQL[10][11][12][13]などと相互運用し、関数を呼び出したり呼び出されたりすることもできる。
C言語の printf を呼び出す例。
@ccall printf("Hello, World!\n"::Cstring)::Cvoid
Python とは同じ動的型付けのプログラミング言語であり類似点が多いため、相互運用がしやすい。ただし、NumPyはC言語と同じくrow-majorで配列の添え字は0から始まるが、JuliaはFortranと同じくcolumn-majorで配列の添え字は1から始まる[14]。下記は Julia の側から PythonCall を使用した例である。[15]
using PythonCall
np = pyimport("numpy")
print(np.array([1, 2, 3], dtype=np.float32))
同様に JuliaCall により、Python の側から Julia を呼び出すことも可能であり、Julia は計算が高速にできるので、計算量が多い部分だけを Julia により計算するということも可能である。下記は Python の側から JuliaCall を使用した例で、Julia の多次元配列と NumPy を組み合わせて使用している。[16]
from juliacall import Main as jl
import numpy as np
np.array(jl.rand(range(10), 3, 5))
