| 開発者 | 独立した人々のグループ |
|---|---|
| 安定版リリース | 最新のDockerリリース / 2015年11月13日[1] |
| プレビューリリース | Sourceforge マスター / 2022年2月6日 |
| リポジトリ | https://sourceforge.net/p/axiom/code/ |
| 書かれた | リスプ |
| オペレーティング·システム | クロスプラットフォーム |
| タイプ | コンピュータ代数システム |
| ライセンス | 修正BSDライセンス |
| Webサイト | このサイトについて |
Axiom は、無料の汎用コンピュータ代数システムです。インタープリタ環境、コンパイラ、および厳密に型指定された階層を定義するライブラリで構成されています。
歴史
Scratchpadという名の 2 つのコンピュータ代数システムがIBMによって開発されました。最初のものは 1965 年にRalph Gomoryの要請でJames Griesmer [2]によって開始され、Fortranで書かれました。[3]このソフトウェアの開発は一般公開される前に中止されました。2 番目の Scratchpad は、当初Scratchpad IIと名付けられ、1977 年以降、Thomas J. Watson Research CenterでRichard Dimick Jenks の指導の下で開発されました。[4]
この設計は主に、Richard D. Jenks (IBM Research)、James H. Davenport (バース大学)、Barry M. Trager (IBM Research)、David YY Yun (サザンメソジスト大学)、Victor S. Miller (IBM Research) によるものです。このプロジェクトの初期のコンサルタントは、David Barton (カリフォルニア大学バークレー校) とJames W. Thatcher (IBM Research)でした。実装には、ロバート・サター(IBMリサーチ)、スコット・C・モリソン(カリフォルニア大学バークレー校)、クリスティン・J・スンダレサン(IBMリサーチ)、ティモシー・デイリー(IBMリサーチ)、パトリツィア・ジャンニ(ピサ大学)、アルブレヒト・フォルテンバッハー(カールスルーエ大学)、スティーブン・M・ワット(IBMリサーチおよびウォータールー大学)、ジョシュ・コーエン(イェール大学)、マイケル・ロススタイン(ケント州立大学)、マヌエル・ブロンスタイン(IBMリサーチ)、マイケル・モナガン(サイモンフレーザー大学)、ジョナサン・スタインバッハ(IBMリサーチ)、ウィリアム・バージ(IBMリサーチ)、ジム・ウェン(IBMリサーチ)、ウィリアム・シット(ニューヨーク市立大学)、クリフトン・ウィリアムソン(IBMリサーチ)が参加した[5]。
Scratchpad II は、1990 年頃に IBM がこれを商用製品にすることを決定したときにAxiomに改名されました。数年後、 NAGに売却されました。2001 年に市場から撤退し、修正 BSD ライセンスの下で再リリースされました。それ以来、このプロジェクトの主任開発者は Tim Daly です。
2007年、Axiomは2度フォークされ、2つの異なるオープンソースプロジェクト、OpenAxiom [6]とFriCAS [7]が誕生しました。これは「プロジェクトの目標に関する深刻な意見の相違」によるものでした。[8] AxiomプロジェクトはTim Dalyによって開発が続けられました。
現在の研究の方向性は「公理の正当性を証明すること」、つまり論理的、合理的、賢明、健全であることです。
ドキュメント
Axiomは文芸プログラムです。[9]ソースコードはaxiom-developer.orgウェブサイトで公開されている一連の巻で入手可能になっています。これらの巻にはシステムの実際のソースコードが含まれています。
現在入手可能な文書は次のとおりです。
- 統合された目次
- 第0巻:Axiom JenksとSutor—メイン教科書
- 第 1 巻: Axiom チュートリアル - 簡単な紹介
- 第 2 巻: Axiom ユーザー ガイド - ドメイン使用の詳細な例 (未完了)
- 第 3 巻: Axiom プログラマー ガイド - プログラム作成のガイド付き例 (未完成)
- 第 4 巻: Axiom 開発者ガイド - 開発者固有のトピックに関する短いエッセイ (未完成)
- 第 5 巻: Axiom インタープリタ - Axiom インタープリタのソース コード (未完成)
- 第 6 巻: Axiom コマンド - システム コマンドとスクリプトのソース コード (未完成)
- 第 7 巻: Axiom Hyperdoc - X11 Hyperdoc ヘルプ ブラウザーのソース コードと説明
- 第 7.1 巻 Axiom Hyperdoc ページ - Hyperdoc ページのソース コード
- 第 8 巻: Axiom Graphics - X11 グラフィックス サブシステムのソース コード
- 第 8.1 巻 Axiom ギャラリー - Axiom 画像のギャラリー
- 第 9 巻: Axiom コンパイラ - Spad コンパイラのソース コード (未完成)
- 第 10 巻: 公理代数の実装 - 実装の問題に関するエッセイ (未完了)
- 第10.1巻: 公理代数理論—背景理論を含むエッセイ
- 第 10.2 巻: 公理代数カテゴリ - 公理カテゴリのソース コード
- 第 10.3 巻: 公理代数ドメイン - 公理ドメインのソース コード
- 第 10.4 巻: Axiom 代数パッケージ - Axiom パッケージのソース コード
- 第 10.5 巻: 公理代数数値 - 公理代数数値のソース コード
- 第 11 巻: Axiom ブラウザ - Axiom Firefox ブラウザ フロントエンドのソース ページ
- 第 12 巻: Axiom Crystal - Axiom Crystal フロントエンドのソース コード (未完成)
- 第 13 巻: 公理の正しさの証明 - 公理代数の証明 (未完了)
- 第 15 巻: Axiom SANE コンパイラ
- 参考文献: Axiom 参考文献 - 文献参照
- バグリスト: Axiom バグリスト - バグリスト
- リファレンス カード: Axiom リファレンス カード - 便利な機能の概要
ビデオ
Axiomプロジェクトは、ドキュメントの提供に重点を置いています。最近、このプロジェクトは一連の教育ビデオの最初のものを発表しました。このビデオはaxiom-developer.org[10]のウェブサイトでも公開されています。最初のビデオ[11]では、 Axiomの情報源の詳細が説明されています。[11]
哲学
Axiom プロジェクトは「30 年の展望」に焦点を当てています。基本的な考え方は、Axiom が次世代の計算数学者に役立つようにするためには、いくつかの基本的な機能を開発する必要があるということです。ソース コード全体で、Knuth の文芸プログラミング手法が使用されています。Axiom は、アルゴリズムの正しさを証明するために証明技術を使用する予定です ( CoqやACL2など)。
Axiom は継続的なリリース プロセスの一環としてDockerコンテナを使用します。最新のイメージは、docker と次のコマンドを使用して、どのプラットフォームでも利用できます。
docker pull デイリー/アキシオム
docker run -i -t daly/axiom axiom
デザイン
Axiom では、各オブジェクトに型があります。型の例としては、数学的構造 (リング、体、多項式など) や、コンピュータ サイエンスのデータ構造 (リスト、ツリー、ハッシュテーブルなど) などがあります。
関数は引数として型を取ることができ、その戻り値も型になることがあります。たとえば、Fractionは関数であり、IntegralDomain引数として を取り、その引数の分数の体を返します。別の例として、有理数要素を持つ行列の環は として構築されます。もちろん、この領域で作業する場合、は単位行列として解釈され、行列 の逆行列 (存在する場合) を返します。
SquareMatrix(4, Fraction Integer)1A^-1A
複数の操作に同じ名前を持たせることができ、引数と結果の両方の型を使用して、どの操作が適用されるかを決定します (関数オーバーロードを参照)。
Axiom には SPAD と呼ばれる拡張言語が付属しています。Axiom のすべての数学的知識はこの言語で記述されています。インタープリタはほぼ同じ言語を受け入れます。
特徴
インタープリタ環境内では、Axiom は型推論とヒューリスティック アルゴリズムを使用して、明示的な型注釈をほとんど不要にします。
インタラクティブなブラウザのようなヘルプ システムである「HyperDoc」を備えており、2 次元および 3 次元のグラフィックを表示できるほか、回転や照明などのインタラクティブ機能も提供します。また、Emacs専用のインタラクション モードと、 TeXmacsエディター用のプラグインも備えています。
-
ドメインで利用可能な操作を表示する HyperDoc
-
表面を表示する公理
-
Axiom Firefox ブラウザ インターフェース
-
熱方程式を簡略化する公理
-
公理行列操作
-
公理によるリッシュ積分の計算
Axiomには、マヌエル・ブロンスタインとバリー・トレーガーによって行われた、初等積分のためのリッシュアルゴリズムの実装があります。この実装では、ほとんどの初等積分とその存在の有無を見つけることができますが、実装されていない分岐がいくつかあり、積分中にそのようなケースに遭遇するとエラーが発生します。[12] [13]
参照
参考文献
- ^ 「daly/axiom Tags」。Docker Hub 。 2022年3月25日閲覧。
- ^ Fitch, John (2012年7月23日). 「James Griesmer 1929--2011」. ACM Communications in Computer Algebra . 46 (1/2): 10– 11. doi : 10.1145/2338496.2338499 . S2CID 36788754.
- ^ 「Axiom Computer Algebra System」. axiom-developer.org。
- ^ 「リチャード・D・ジェンクスの伝記情報」www.eecis.udel.edu。
- ^ 「EUROCAL '85 | SpringerLink」。www.springer.com。
- ^ 「OpenAxiom: オープン科学計算プラットフォーム」www.open-axiom.org。
- ^ “FriCAS 18a5ef5d99c796a89efeac06df40043a85b3d44d — FriCAS”. fricas.github.io .
- ^ 「履歴 — FriCAS」. fricas.github.io .
- ^ axiom-developer.org のウェブサイトにある「なぜ文芸的プログラミングなのか?」
- ^ 「Axiom コンピュータ代数システム」www.axiom-developer.org。
- ^ ab 「Axiom Computer Algebra System 情報ソース」。YouTube。2008年11 月 30 日。
- ^ Bronstein, Manuel (2003 年 9 月 5 日). 「Manuel Bronstein on Axiom's Integration Capabilities」. groups.google.com . 2023 年 2 月 10 日閲覧。
- ^ 「積分 - Risch アルゴリズムの完全な実装は存在するか?」MathOverflow . 2020 年 10 月 15 日. 2023 年 2 月 10 日閲覧。
さらに読む
- James H. Griesmer、Richard D. Jenks (1971)。「SCRATCHPAD/1: 記号数学のための対話型機能 | 記号および代数操作に関する第 2 回 ACM シンポジウム (SYMSAC '71) の議事録」、42 ~ 58 ページ。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - Richard D. Jenks (1971)。META /PLUS - SCRATCHPAD の構文拡張機能(研究レポート)。IBM Thomas J. Watson 研究センター。RC 3259。
- James H. Griesmer、Richard D. Jenks (1972)。「オンライン記号数学システムの経験 | ONLINE72 カンファレンスの議事録」。1 .ブルネル大学: 457– 476。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - ジェームス・H・グリーズマー;リチャード・D・ジェンクス(1972年)。 「スクラッチパッド」。ACM SIGPLAN の通知。7 (10): 93–102。土井:10.1145/942576.807019。
- Richard D. Jenks (1974). 「SCRATCHPAD言語」ACM SIGSAM Bulletin . 8 (2): 20– 30. doi :10.1145/1086830.1086834. S2CID 14537956.
- Arthur C. Norman ( 1975)。「形式べき級数による計算」。ACM Transactions on Mathematical Software。1 ( 4): 346– 356。doi :10.1145/ 355656.355660。ISSN 0098-3500。S2CID 18321863 。
- Richard D. Jenks (1976)。「パターン コンパイラ | 記号および代数操作に関する第 3 回 ACM シンポジウム (SYMSAC '76) の議事録」: 60 ~ 65 ページ。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - E. ルエケン (1977)。Ueberlegungen zur Implementierung eines Formelmanipulationssystems (修士論文) (ドイツ語)。ドイツ:カロロ・ヴィルヘルミナ・ツ・ブラウンシュヴァイク工科大学。
- George E. Andrews (1984)。「Ramanujan と SCRATCHPAD | 1984 MACSYMAユーザーズ カンファレンスの議事録」。スケネクタディ: General Electric : 383– 408。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - James H. Davenport、P. Gianni、Richard D. Jenks、V. Miller、Scott Morrison、M. Rothstein、C. Sundaresan、Robert S. Sutor、Barry Trager (1984)。「スクラッチパッド」。IBM Thomas J. Watson 研究センター、数学科学部門。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - Richard D. Jenks (1984)。「コンピュータ代数用の新しい SCRATCHPAD 言語とシステム」。1984年 MACSYMA ユーザーズ カンファレンスの議事録: 409–416。
- Richard D. Jenks (1984)。「入門: 新しい Scratchpad の 11 のキー | 記号および代数計算に関する国際シンポジウム '84 の議事録」Springer: 123– 147。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - Robert S. Sutor (1985)。「Scratchpad II コンピュータ代数言語とシステム | 記号および代数計算に関する国際シンポジウム '85 の議事録」Springer: 32– 33。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - Rüdiger Gebauer、H. Michael Möller (1986)。Buchbergerのアルゴリズムとスタッガード線形基数 | 第 5 回 ACM シンポジウム「記号および代数計算」の議事録 (International Symposium on Symbolic and Algebraic Computation '86) 。ACM。pp . 218– 221。ISBN 978-0-89791-199-3。
- Richard D. Jenks、Robert S. Sutor、Stephen M. Watt (1986)。「Scratchpad II: 数学計算のための抽象データ型システム(研究レポート)」。IBM Thomas J. Watson 研究センター。RC 12327。
- Michael Lucks、Bruce W. Char (1986)。多項式因数分解の高速実装 | Proceedings of SYMSAC '86 . ACM. pp. 228– 232. ISBN 978-0-89791-199-3。
- J. Purtilo (1986).数学の問題解決環境におけるソフトウェア相互接続システムの応用 | Proceedings of SYMSAC '86 . ACM. pp. 16– 23. ISBN 978-0-89791-199-3。
- William H. Burge、Stephen M. Watt (1987)。SCRATCHPAD II の無限構造(研究レポート)。IBM Thomas J. Watson Research Center。RC 12794。
- パスカル・セネショー。フランソワーズ・シーベール。ジル・ヴィラール (1987)。Scratchpad II: 新しい計算方法のプレゼンテーション。TIM (研究報告書) (フランス語)。 IMAG、グルノーブル工科大学。 640-M.
- Robert S. Sutor、Richard D. Jenks (1987)。 「スクラッチパッド II インタプリタの型推論と強制変換機能」。インタプリタとインタプリタ技術に関するシンポジウム論文 - SIGPLAN '87。pp. 56– 63。doi :10.1145 / 29650.29656。ISBN 978-0-89791-235-8. S2CID 17700911。
- George E. Andrews (1988)。R. Janssen (編)。特殊関数と組合せ論の問題への SCRATCHPAD の応用 | Trends in Computer Algebra。Lecture Notes in Computer Science。Springer。pp . 159– 166。
- ジェームズ・H・ダベンポート、イヴォン・シレット、エヴリン・トゥルニエ(1993)[1988]。コンピュータ代数:代数計算のためのシステムとアルゴリズム。アカデミック・プレス。ISBN 978-0122042300。
- リュディガー・ゲバウアー。 H. ミヒャエル メラー (1988)。 「ブッフベルガーのアルゴリズムのインストールについて」。記号計算ジャーナル。6 ( 2–3 ): 275–286 .土井: 10.1016/s0747-7171(88)80048-8。ISSN 0747-7171。
- Fritz Schwarz (1988)。R. Janssen (編)。抽象データ型を使用したプログラミング: Scratchpad の対称パッケージ (SPDE) | Trends in Computer Algebra。コンピュータサイエンスの講義ノート。Springer。pp. 167– 176。
- David Shannon、Moss Sweedler (1988)。「グレブナー基底を使用して代数のメンバーシップを決定すると、分割射影代数準同型により双有理同値性が決定されます」。Journal of Symbolic Computation。6 ( 2–3 ) : 267– 273。doi : 10.1016/s0747-7171(88)80047-6。
- Hans-J. Boehm (1989). 「型抽象化がある場合の型推論」ACM SIGPLAN Notices . 24 (7): 192– 206. doi :10.1145/74818.74835.
- Manuel Bronstein (1989)。「実数基本関数の簡略化 | 記号および代数計算に関する国際シンポジウム (SIGSAM '89) の議事録」。ACM: 207– 211。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - Claire Dicrescenzo、Dominique Duval (1989)。P. Gianni (編)。「Scratchpad II における代数的拡張と代数的閉包 | 記号的および代数的計算」。Springer: 440– 446。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - ティモシー・デイリー「Axiom - Lisp の 30 年」
- Timothy Daly「Axiom」招待講演、フリーソフトウェアカンファレンス、リヨン、フランス、2002 年 5 月
- Timothy Daly「Axiom」招待講演、Libre Software Meeting、フランス、メッツ、2003 年 7 月 9 ~ 12 日
外部リンク
ウィキメディア・コモンズの Axiom (コンピュータ代数ソフトウェア) に関連するメディア
- Axiom ホームページ
- Axiomを試すためのオンラインサンドボックス
- ソースコードリポジトリ: Github、SourceForge、GNU Savannah
- Jenks, RD および Sutor, R. 「Axiom、科学的計算システム」
- Daly, T.「Axiom 第 1 巻: チュートリアル」
ソフトウェアフォーク:
- OpenAxiom (SourceForge)
- FriCAS (SourceForge)
