Axiom (数式処理システム)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
Axiom
対応OS クロスプラットフォーム
種別 計算機代数システム
ライセンス 修正 BSD ライセンス
公式サイト Axiom 公式ホームページ
テンプレートを表示

Axiom(アクシアム、公理を意味する英単語 axiom [æksiəm] から)はフリーソフトウェア計算機代数システムである。システムには対話型実行環境、コンパイラとライブラリが含まれており、強力な型付けによる、数学的な階層構造を持つ型を定義している。

開発の経緯[編集]

Axiom の開発は1971年に始まった[1]。開発は IBMRichard Dimick Jenks の元で行われ、当時は Scratchpad という名前であった。開発には、バリー・トラガー (Barry Trager)、ステファン・ワット (Stephen Watt)、ジェームズ・ダベンポート (James Davenport)、ロバート・スター (Robert Sutor)、スコット・モリソン (Scott Morrison) が加わっていた。

1990年代に NAG が Scratchpad を買い取り、現在の名前 Axiom が付けられた。その後、2001年に商用製品としての販売は終了し、以降の開発、管理はティム・デイリー Tim Daly にゆだねられ、修正BSDライセンスの元で公開されている。

Axiom からは2007年に2つのプロジェクトがフォークしている。どちらもオープンソースプロジェクトであり、その一つの OpenAxiom は同年8月13日に発足し同年8月24日に最初のリリースを出している。もう一方の FriCAS 同年9月28日に最初のバージョンをリリースしている。

Axiom (本家) は数日から数週間おきにパッチの形でバージョンアップしており[2]、バージョン番号を振っていない。

文書化[編集]

Axiom は文芸的プログラミングを指向している。Axiom のソースコードは複数の「巻 (volume)」に分けかれており、Axiom の開発サイト で公開されている。各巻には Axiom の実際のソースコードが記述されている。

現在公開されているのは以下である。

解説動画[編集]

Axiom プロジェクトは文書化に重点を置いている。また近年は解説ビデオでプロジェクトに関するアナウンスが最初に行われている。その解説ビデオは Axiom の開発サイト で公開されている。その最初のビデオで Axiom の情報発信に関する詳細が述べられている[3]

開発方針[編集]

Axiom の開発プロジェクトは「30年計画」で行われている。まず第一に、次世代の計算機を使う数学者にとって有用なソフトウェアとなるために必要な機能を実装することである。ドナルド・クヌース文芸的プログラミング技法が Axiom のソースコード全体にわたって使われている。開発に当たっては、アルゴリズムの正しさを証明するために証明技術 (proof technology、CoqACL2 などのようなもの) を導入する予定である。

設計思想[編集]

Axiom においては、オブジェクトはすべて型を持っている。型は数学的な「構造」であり、例えば多項式などがある。またデータ構造はリスト構造、木構造ハッシュテーブルなど、計算機科学のものが実装されている。

関数は引数として型そのものを取ることができ、型はその返り値にもできる。たとえば Fraction という関数は引数として IntegralDomain を取り、その引数の分数からなる体を返す。また、有理数からなる大きさ 4\times 4 の行列のなす環は SquareMatrix(4, Fraction Integer) によって生成できる。その環での演算を行う場合、1 は単位行列、A^-1A の逆行列 (存在する場合) であると解釈される。

複数の演算が同じ名前を持つことができ、それらはオブジェクト指向プログラミングの場合と同様、引数と求められる結果の型によって区別される。

Axiom の拡張言語として SPAD と呼ばれるものがある。Axiom に実装されている数学的な知識はすべて SPAD で書かれている。Axiom の対話的実行環境は、SPAD のおおよそ全てを理解する。

SPAD はかつて A#、続いて Aldor という名前で開発されていた。後者は現在も、SPAD の代わりに Axiom から使うことができる。しかし Axiom とは異なるライセンスで公開されている。

特徴[編集]

対話的実行環境内では、型推定および発見的探索法を用いることで、多くの場合に明示的な型付けを行わなくてもいいようになっている。

また 'HyperDoc' というウェブブラウザに似たヘルプ表示システムを持っており、二次元および三次元グラフィクスを表示して回転させたり明るくしたりすることができる。Emacs および TeXmacs でも Axiom モードが実装されている。

Axiom では初等関数の積分法して リッシュのアルゴリズム を実装している (Manuel Bronstein および Barry Trager による)。

関連項目[編集]

脚注[編集]

  1. ^ Axiom 公式ホームページ
  2. ^ Axiom パッチ公開ページ
  3. ^ "Axiom Computer Algebra System Information Sources," jgg899, YouTube, 2008年11月30日

外部リンク[編集]

フォークしたプロジェクト[編集]