「OCaml」とは異なります。
GNU OctaveGnu-octave のロゴ
Linux上で動かしたGNU Octave 4.0.0 RC1の画面。
開発元John W. Eaton
初版1988年 (1988)[1]
最新版9.1.0 / 2024年3月14日 (2か月前) (2024-03-14)[2]
リポジトリ
hg.savannah.gnu.org/hgweb/octave
GNU Octave は、主に数値解析を目的としたプログラミング言語である。コマンドラインインタフェースを提供し、MATLABとほぼ互換性のある数値実験用プログラミング言語として使用できる。 Octaveは、GNUプロジェクトの一つでGNU General Public Licenseの条件の下のフリーソフトウェアである。GNU OctaveとScilabは、MATLABのオープンソース代替品の一つである。OctaveはScilabよりもMATLABとの互換性維持に重点を置いている[3][4][5][6][7][8]。 開発が始まったのは1988年頃で、当初は化学反応器設計の授業のために作られた。その後、1992年からジョン・イートン (John W. Eaton
開発の経緯
Octaveという名前はイートンの指導教官である元オレゴン州立大学教授のオクターブ・レヴェンシュピール(Octave Levenspiel、反応工学)にちなむ[9]。
当初の目的である個人的な利用に加え、学術及び工業的用途にも使われている。例えば米国ピッツバーグ・スーパーコンピューティング・センター (Pittsburgh supercomputing center) では大規模並列計算による社会保障番号の攻撃に対する脆弱性検証に使っている[10]。
ユーザインタフェースは永らくCUIのみであったが、3.8.0からはGUIが搭載された[11]。 Octaveは対話形式で各種コマンドを入力する事で数値計算する。入力途中にタブを入力すると関数名、変数名、ファイル名等を補完する機能(Bashのタブ補完 対話形式で用いられるコマンドをスクリプト化しプログラミング言語のように扱う事ができる。C言語のような構造化言語であり、C言語の標準ライブラリに含まれる多くの関数が実装されている。またUNIXのシステムコールもいくつか利用できる[12]。しかし関数呼び出しで引き数の参照渡しはサポートされていない[13]。 スクリプトでは多数の行列演算子が利用できる。また多種多様なデータ構造を利用できる他、3.2以降のバージョンではオブジェクト指向が付加された。 Octaveの文法はMATLABと非常によく似ており、少し注意してプログラミングすることでOctaveとMATLABの両方で実行できるスクリプトを書くことができる[14]。 OctaveはGNU General Public Licenseによって公開されているため、その改変、複製、利用は自由である[9]。Octaveは多くのUNIXやUnix系プラットフォーム、macOS、Windows で実行できる[15]。 ユーザーがデータ構造をある程度定義できる。
特徴
MATLAB 互換のインタプリタを実装しており、GUIの開発環境もそろっている。
C++とSTLを用いる。
C/C++言語の自作プログラムをコンパイルし、Oct-fileとよばれる形式で呼び出せる。
Octave 4.0からグラフィックはOpenGL graphics with Qt widgetsを用いる。それ以前はgnuplot。
行列計算でBLASを呼び出しているため高速かつ信頼性が高い。
Octave 4.0からOpenMPがデフォルトで有効になっており、システムにこれが実装されている場合、計算の高速化が期待できる。
対話形式
プログラミング言語
データ構造