Axiom (数式処理システム)
Axiom においては、オブジェクトはすべて型を持っている。型は数学的な「構造」であり、例えば環、体、多項式などがある。またデータ構造はリスト構造、木構造、ハッシュテーブルなど、計算機科学のものが実装されている。
関数は引数として型そのものを取ることができ、型はその返り値にもできる。たとえば Fraction という関数は引数として IntegralDomain を取り、その引数の分数からなる体を返す。また、有理数からなる大きさ 4 × 4 の行列のなす環は SquareMatrix(4, Fraction Integer) によって生成できる。その環での演算を行う場合、1 は単位行列、A^-1 は A の逆行列 (存在する場合) であると解釈される。
複数の演算が同じ名前を持つことができ、それらはオブジェクト指向プログラミングの場合と同様、引数と求められる結果の型によって区別される。
Axiom の拡張言語として SPAD と呼ばれるものがある。Axiom に実装されている数学的な知識はすべて SPAD で書かれている。Axiom の対話的実行環境は、SPAD の概ね全てを理解する。
SPAD はかつて A#、続いて Aldor という名前で開発されていた。後者は現在も、SPAD の代わりに Axiom から使うことができる。しかし Axiom とは異なるライセンスで公開されている。