数学ソフトウェアの作り方
本書は数学ソフトウェアを開発するために知っておいて欲しい事柄を書籍としてまとめたものである。開発する数学ソフトウェアとしては、独自言語を持ち、またライブラリとしても利用可能で、C言語やその派生言語などを核として開発されているようなものを想定している。
まず、実際のアプリケーションの実装への対応を念頭に、一歩進んだC言語の解説を行う。次に、多項式電卓およびグレブナー基底の計算システムを例題として、数学ソフトウェアの核の部分の作成を解説する。さらに、多くのシステムへの移植性(ポータビリティ)を得るために使われるautomakeなどのツールの使い方や、yacc,GMP,Boehm GCといった多くの数学ソフトウェアで利用されているツールやライブラリについても触れる。最後に、Emscriptenを用いたWebAssemblyへの変換など、C言語で制作したソフトウェアのウェブアプリへの移植を解説する。
著者は皆、計算代数システムRisa/Asirなど数学ソフトウェアの開発に現在まで携わってきている。本書にはその経験が随所にちりばめられており、この上ない解説書となっている。
1.1 準備
1.2 なぜC言語
1.3 本書のための実習環境
1.4 2進数,16進数,int の正体
1.5 ファイルはbyteの列
1.6 関数,変数,ポインタ
1.7 整数の計算
1.8 グラフを描く
1.9 構造体とその応用
1.10 C言語によるリスト構造の実現
1.11 再帰降下型パーサーを自作して点をプロットするソフトを作成
1.12 Gitの利用
1.13 例題――復習と第2, 3, 4章への準備
第2章 多項式の処理と例題システム
2.1 多項式の計算機上での表現方法
2.2 多項式環
2.3 項順序
2.4 係数環の演算
2.5 多項式の演算
2.6 例題システム1:多項式電卓
2.7 例題システム2:Buchbergerアルゴリズムの実装
2.8 例題システム3:F4風Buchbergerアルゴリズムの実装
第3章 ツール,ビルドシステム,ライブラリ
3.1 シェル
3.2 make
3.3 Autotools
3.4 yacc (bison)
3.5 多倍長整数演算ライブラリGMP
3.6 ガベージコレクタBoehm GC
第4章 Web プラットフォームへの対応
4.1 仮想マシン
4.2 WSL 2環境のインストール
4.3 CLIからWebプラットフォームへの移植
4.4 多項式電卓のWebアプリ化
4.5 GUIフレームワークの紹介(筆者のGUI遍歴)
関連書籍
-
プログラミング言語C
価格:3,080円(税込)
-
グレブナー道場
価格:6,160円(税込)
-
計算機代数の基礎理論
価格:3,520円(税込)