Julia開発チームは、目指している最終的なJuliaの姿として、次のような目標を掲げています。
・ゆるやかなオープンソースライセンス
・コンパイルできる言語
・C言語の高速性
・Ruby言語の動的性
・Lisp言語のような真のマクロが使える同図象性
・Matlabのように分かりやすい数学記述と線形代数計算機能
・Python言語のような汎用性
・R言語のような統計処理機能
・Perl言語のような文字列処理機能
・シェルのように簡単に使用できる複数パーツ連携機能
・ベテラン技術者(研究者)も満足できる高機能性
・Hadoopのような大規模分散コンピューティングへの対応
・インタラクティブ性
・低い学習コスト
Juliaは「LLVMコンパイラフレームワーク」を用いて「C言語」「C++」「Scheme」などで実装されています。ほとんどの標準ライブラリは独自実装されています。
Juliaは、言語設計とコンパイラ最適化技術により、パフォーマンスに関する多くのトレードオフを排除でき、プロトタイプ化に十分な生産性を持ち、パフォーマンスを重視するアプリケーションを展開するのに十分な単一環境を提供することを可能にします。
Juliaは厳密な低レベルループから高レベルのプログラミングスタイルに至るまで、複雑なアルゴリズムを簡単に表現できます。プログラミングレベルでの連続的なスペクトルが、Juliaのプログラミングに対するアプローチの特徴であり意図的に設計されています。
型推論とJIT(ジャストインタイム)コンパイルにより、「オプションの型指定」「多重ディスパッチ」「優れたパフォーマンス」を実現します。
Juliaは、従来の静的型付き言語に匹敵するパフォーマンスで、科学的数値計算に適した柔軟な動的言語です。
「科学技術計算向け言語」とは、専門的な科学技術分野(線形代数、数値解析、統計解析など)での計算処理に特化させた言語です。多くの専門的な計算用ライブラリが用意され、計算処理をシンプルに記述できるように設計されています。
科学技術計算向け言語であるJuliaも、「MATLAB」や「numpy/scipy」と同じような感覚で利用でき、多次元配列などについて簡単に扱えるように設計されています。
Juliaは、「命令型」「機能型」「オブジェクト指向プログラミング」などを組み合わせたマルチパラダイム言語です。
R/MATLAB/Pythonなどの言語と同じように、一般的なプログラミングをサポートしていることに加え、高度な数値計算のための容易さと表現力を提供します。
Juliaは数学プログラミング言語の系統をベースにしていますが、マルチパラダイムを実現するために、Lisp/Perl/Python/Lua/Rubyなどの一般的な動的言語の汎用性も組み入れています。
一般的な動的言語において、基本的にはユーザー定義なども含め、すべてのオブジェクトに型があります。しかし、ほとんどの動的言語での型宣言の欠如は、コンパイラに値の型について明示的に指示できないことを意味します。
一方、静的言語では、コンパイラの型に注釈を付けることができますが、型はコンパイル時にのみ存在し、実行時に操作または表現することはできません。
Juliaでは、型はそれ自身が実行時オブジェクトであり、情報をコンパイラに伝えるためにも使用できます。
Juliaのプログラムコードは、複数のディスパッチを中心に編成されています。
Juliaにおいて、関数はさまざまな引数型の組み合わせで定義され、最も具体的なマッチング定義にディスパッチすることによって適用されます。
このモデルは、従来のオブジェクト指向のディスパッチのように「操作を所有する」という第一引数が不自然である数学的プログラミングに適しています。演算子についても、特別な表記法を持つ関数に過ぎません。
新しいユーザー定義データ型への追加を拡張するためには、関数の新しいメソッドを定義します。既存コードは、新しいデータ型にシームレスに適用されます。関数を定義し、それらを引数の型の異なる組み合わせに対してオーバーロードすることによるユーザー定義も行えます。
・スクリプト言語
・構文は「MATLAB」ベース
・複数ディスパッチ(引数型の多くの組み合わせで関数の動作を定義)
・さまざまな引数型による効率的で特殊なコードの自動生成
・動的型システム(文書化/最適化/ディスパッチタイプ)
・組み込みパッケージマネージャ
・Lispのようなマクロ機能
・メタプログラミング機能
・他プロセス管理機能
・並列処理(分散計算用に設計、軽量スレッディング)
・拡張可能なコンバージョンとプロモーション
・ガベージコレクションによる先行評価
・Unicodeの効率的なサポート など
参考元サイト
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。
「JuliaDB」とは JuliaDBは、大規模永続データセットを操作するためのパッケージで、優れたパフォーマンスを発揮する分析データベース機能を提供する。 「Julia言語」をベースに構築されており、Pandasなどの同様プロダクトと比較しても、優れた機能を利用できる。 「the MIT "Exp...
OSS×Cloud ACCESS RANKING