MATLAB,Python,Scilab,Julia比較 その5【概要編⑤】

MATLAB,Python,Scilab,Julia比較 その5【概要編⑤】 数値計算
MATLAB,Python,Scilab,Julia比較 その5【概要編⑤】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia-backnumber/

はじめに

前回はScilabについて概要説明。
ScilabはMTALAB/Simulinkと比較されることが多い。
由はxcosというグラフィカルにブロック線図を書けるツールの存在。
これがSimulinkに似ているところ。

今回は、Juliaについて。
これに関してはぶっちゃけあまり知らない。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

Julia

フクさん
フクさん

まず最初に言っておこう。

太郎くん
太郎くん

なに?

フクさん
フクさん

Juliaは知らん!

太郎くん
太郎くん

あー、確かに最初の時も存在は知ってるけど、

使ったことは無いようなこと言ってたもんねー。

フクさん
フクさん

というわけでJuliaに関しては
調べながら試しながらって進め方になるだろう。
ぶっちゃけ、Juliaのこと知りたかったら他の解説サイトを見てもらった方が良い。

太郎くん
太郎くん

(ここまで自信持って知らないと言い切るのもスゲェな・・・。)

恒例のWikipedia

フクさん
フクさん

まずは当然ながらWikipedia。

太郎くん
太郎くん

ここ最近はWikipedia大活躍だね。

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

Wikipediaより(https://ja.wikipedia.org/wiki/Julia_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E))
フクさん
フクさん

Wikipediaの内容をさらに読み進めると書いてある話だが、
JIT(Just In Time)コンパイルしているみたいだな。

太郎くん
太郎くん

JITコンパイル?

フクさん
フクさん

実行時コンパイラとも言うらしいな。
ここもWikipediaに活躍してもらおう。

実行時コンパイラ(じっこうじコンパイラ、Just-In-Time Compiler、JITコンパイラ、その都度のコンパイラ)とは、ソフトウェアの実行時にコードのコンパイルを行い実行速度の向上を図るコンパイラのこと。通常のコンパイラはソースコード(あるいは中間コード)から対象CPUの機械語への変換を実行前に事前に行い、これをJITと対比して事前コンパイラ (Ahead-Of-Timeコンパイラ、AOTコンパイラ)と呼ぶ。

Wikipediaより(https://ja.wikipedia.org/wiki/%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9)
太郎くん
太郎くん

C言語みたいに事前にコンパイルするわけじゃなく、
実行した上で、必要な時に必要範囲をコンパイルするってことか。

フクさん
フクさん

そうだね。
恐らくは初回実行時はJITコンパイルが入るから見た目上の処理は遅いけど、
2回目以降は恐ろしく速い
って性質になるのだと思う。

太郎くん
太郎くん

ほう。
それは他のツール、言語では見られない特性だねー。

言語の雰囲気

フクさん
フクさん

そして実際の言語の雰囲気だが、
MATLABに結構似てるな。
流石に完全互換と言うわけでは無いが、MATLAB知ってる人だったら結構すぐ使えるかも
と思わせる仕様だ。

太郎くん
太郎くん

それは朗報な気がする。
全くやったことない文法だったりしたら、それを調べながらやるのも大変だもんね。

フクさん
フクさん

そういう意味ではMATLABとPythonの良いとこ取りを目指してるっぽいね。

太郎くん
太郎くん

ほう。
それは今後が期待できそうな言語だ。

フクさん
フクさん

再度になるが、Juliaに関しては逐次調べながら試しながらでやっていこう。

まとめ

フクさん
フクさん

まとめだよ。

  • ぶっちゃけJuliaについては良く知らない。
    Wikipadiaに活躍してもらって引用しまくり。
  • 最大の特徴はJITコンパイル。
    • これにより、複数回の実行に関しては類似言語/ツールからみたら最速になり得る。
  • というわけでJuliaに関しては逐次調べながらの試しながらで進める。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました