SML#で始める実践MLプログラミング
書籍情報
発売日 : 2021年04月14日
著者/編集 : 大堀 淳/上野 雄大
出版社 : 共立出版
発行形態 : 単行本
書籍説明
内容紹介
Standard ML系言語SML#を用いて実践的なMLプログラミング手法を解説。プログラム例やシステム開発事例を掲載。
目次
第1章 SML#プログラム開発環境の構築
1.1 ML言語の特徴とSML#コンパイラの紹介
1.2 Linux仮想マシン上へのSML#の導入
1.3 対話型モードでのSML#コンパイラの起動
1.4 分割コンパイルと実行コマンドの作成
1.5 makeコマンドの活用
1.6 対話型モードへのオブジェクトファイルのリンク
1.7 練習問題
第2章 MLプログラミングのエッセンス
2.1 式の値と変数の型
2.2 関数の定義と利用
2.3 高階の関数の活用
2.4 多相関数
2.5 関数のテストコマンドの作成
2.6 練習問題
第3章 リストプログラミング演習
3.1 リストデータ型
3.2 空リストの場合の例外処理
3.3 種々の再帰関数の定義
3.4 リスト型基本ライブラリ
3.5 練習問題
第4章 データ型の定義と利用
4.1 datatype宣言による新しい型の定義
4.2 型定義の考え方とプログラム例
4.3 case文によるdatatypeの処理
4.4 練習問題
第5章 モジュールと分割コンパイル
5.1 ストラクチャの定義と利用
5.2 SML#の分割コンパイルシステム
5.3 インターフェイスの定義
5.4 各ストラクチャの実装
5.5 練習問題
第6章 ML流システム設計・開発技法
6.1 型でシステムを分析・設計する
6.2 トップダウンで実装する
6.3 手続きと宣言を分けて考える
6.4 発展課題
第7章 C言語との連携
7.1 MLとC言語の連携の役割
7.2 直接受け渡し可能なデータ型
7.3 C関数のインポート式
7.4 分割コンパイルとリンク
7.5 ポインタの実行時表現を持つデータのエクスポート
7.6 ポインタの実行時表現を持つデータのインポート
7.7 多相性を持つCライブラリとの連携例
7.8 練習問題
第8章 外部データのアクセス
8.1 ファイルの入出力
8.2 例外処理機構を使ったエラー処理
8.3 JSONデータの読み込み
8.4 コマンドライン引数の処理
8.5 練習問題
第9章 データベースとの連携
9.1 SML#のデータベース統合の概要
9.2 SML#がサポートする関係データベース
9.3 データベースサーバの定義
9.4 データベースサーバへの接続
9.5 SML#のSQL式
9.6 SQL関数式の定義と利用の流れ
9.7 SQLクエリ式の概要
9.8 SQLコマンド式の概要
9.9 SQL関数式の合成
9.10 データベースプログラム例
9.11 練習問題
第10章 並列プログラミング
10.1 Pthreadプログラミング
10.2 Pthreadストラクチャの使用例:キュー
10.3 並列プログラミング例:レイトレーシング
10.4 MassiveThreadsによる並列プログラミング
10.5 MassiveThreadsを用いたレイトレーシングの並列化
10.6 練習問題
第11章 実用システム開発技法
11.1 外部ライブラリの利用
11.2 中間表現による手続きの隠蔽
11.3 メインルーチンとデータの入出力
11.4 発展課題
1.1 ML言語の特徴とSML#コンパイラの紹介
1.2 Linux仮想マシン上へのSML#の導入
1.3 対話型モードでのSML#コンパイラの起動
1.4 分割コンパイルと実行コマンドの作成
1.5 makeコマンドの活用
1.6 対話型モードへのオブジェクトファイルのリンク
1.7 練習問題
第2章 MLプログラミングのエッセンス
2.1 式の値と変数の型
2.2 関数の定義と利用
2.3 高階の関数の活用
2.4 多相関数
2.5 関数のテストコマンドの作成
2.6 練習問題
第3章 リストプログラミング演習
3.1 リストデータ型
3.2 空リストの場合の例外処理
3.3 種々の再帰関数の定義
3.4 リスト型基本ライブラリ
3.5 練習問題
第4章 データ型の定義と利用
4.1 datatype宣言による新しい型の定義
4.2 型定義の考え方とプログラム例
4.3 case文によるdatatypeの処理
4.4 練習問題
第5章 モジュールと分割コンパイル
5.1 ストラクチャの定義と利用
5.2 SML#の分割コンパイルシステム
5.3 インターフェイスの定義
5.4 各ストラクチャの実装
5.5 練習問題
第6章 ML流システム設計・開発技法
6.1 型でシステムを分析・設計する
6.2 トップダウンで実装する
6.3 手続きと宣言を分けて考える
6.4 発展課題
第7章 C言語との連携
7.1 MLとC言語の連携の役割
7.2 直接受け渡し可能なデータ型
7.3 C関数のインポート式
7.4 分割コンパイルとリンク
7.5 ポインタの実行時表現を持つデータのエクスポート
7.6 ポインタの実行時表現を持つデータのインポート
7.7 多相性を持つCライブラリとの連携例
7.8 練習問題
第8章 外部データのアクセス
8.1 ファイルの入出力
8.2 例外処理機構を使ったエラー処理
8.3 JSONデータの読み込み
8.4 コマンドライン引数の処理
8.5 練習問題
第9章 データベースとの連携
9.1 SML#のデータベース統合の概要
9.2 SML#がサポートする関係データベース
9.3 データベースサーバの定義
9.4 データベースサーバへの接続
9.5 SML#のSQL式
9.6 SQL関数式の定義と利用の流れ
9.7 SQLクエリ式の概要
9.8 SQLコマンド式の概要
9.9 SQL関数式の合成
9.10 データベースプログラム例
9.11 練習問題
第10章 並列プログラミング
10.1 Pthreadプログラミング
10.2 Pthreadストラクチャの使用例:キュー
10.3 並列プログラミング例:レイトレーシング
10.4 MassiveThreadsによる並列プログラミング
10.5 MassiveThreadsを用いたレイトレーシングの並列化
10.6 練習問題
第11章 実用システム開発技法
11.1 外部ライブラリの利用
11.2 中間表現による手続きの隠蔽
11.3 メインルーチンとデータの入出力
11.4 発展課題
著者情報
大堀 淳
大堀, 淳, 1957-
上野 雄大
上野, 雄大