Erlang(アーラン)とは、近年再評価されて注目を集めている関数型プログラミング言語。本書は、並行プログラミングに有効な言語として急速に一般にも認知され始めたプログラミング言語Erlangのバイブル的な解説書を翻訳するもの。原著者はErlangの初期の頃からの開発者の一人。
https://www.ohmsha.co.jp/book/9784274067143/
正誤表やDLデータ等がある場合はこちらに掲載しています
第1章 はじめに
第2章 さあ、はじめよう
第3章 逐次プログラミング
第4章 例外
第5章 高度な逐次プログラミング
第6章 プログラムのコンパイルと実行
第7章 並行処理
第8章 並行プログラミング
第9章 並行プログラムにおけるエラー
第10章 分散プログラミング
第11章 IRC Lite
第12章 外部接続の方法
第13章 ファイルを使ったプログラミング
第14章 ソケットを使ったプログラミング
第15章 ETS とDETS:大規模データストレージ機構
第16章 OTP 入門
第17章 Mnesia:Erlangの標準データベース
第18章 OTP でシステムを作る
第19章 マルチコアに取り組む前に
第20章 マルチコアCPU のプログラミング
付録A プログラムのドキュメントを書く
付録B Microsoft WindowsでErlangを使う
付録C 参考文献
付録D ソケットアプリケーション
付録E その他
付録F モジュールと関数のリファレンス
付録G 訳語一覧
Joeより
訳者序文
第1章 はじめに
1.1 ここからの進め方
1.2 もう一度、はじめに
1.3 謝辞
第2章 さあ、はじめよう
2.1 概要
2.2 Erlangのインストール
2.3 この本で使われているコード
2.4 シェルを起動する
2.5 簡単な整数演算
2.6 変数
2.7 浮動小数点数
2.8 アトム
2.9 タプル
2.10 リスト
2.11 文字列
2.12 パターン照合をもう一度
第3章 逐次プログラミング
3.1 モジュール
3.2 買い物に戻る
3.3 名前は同じだけれどアリティが異なる関数
3.4 fun
3.5 簡単なリスト処理
3.6 リスト内包表記
3.7 算術式
3.8 ガード
3.9 レコード
3.10 case式とif式
3.11 自然な順番でリストを作る
3.12 アキュムレータ
第4章 例外
4.1 例外
4.2 例外を起こす
4.3 trycatch
4.4 catch
4.5 エラーメッセージをわかりやすくする
4.6 trycatchを使ったプログラミングスタイル
4.7 ありうる例外をすべて捕捉する
4.8 旧形式と新形式の例外処理
4.9 スタックトレース
第5章 高度な逐次プログラミング
5.1 BIF
5.2 バイナリ
5.3 ビット構文
5.4 その他の小さな話題
第6章 プログラムのコンパイルと実行
6.1 Erlangシェルの起動と終了
6.2 開発環境の調整
6.3 プログラムを実行するためのさまざまな方法
6.4 Makefileを使ってコンパイルを自動化する
6.5 Erlangシェルのコマンド編集
6.6 トラブルから脱出する
6.7 おかしくなってしまったら
6.8 ヘルプを見る
6.9 環境の調整
6.10 クラッシュダンプ
第7章 並行処理
第8章 並行プログラミング
8.1 並行処理用プリミティブ
8.2 簡単な例
8.3 クライアントサーバ―――はじめに
8.4 プロセスを1つ作るのに必要な時間は?
8.5 タイムアウト付きの受信
8.6 選択受信
8.7 登録済みプロセス
8.8 並行プログラムはどう書く?
8.9 末尾再帰について一言
8.10 MFAによるプロセス生成
8.11 練習問題
第9章 並行プログラムにおけるエラー
9.1 プロセスのリンク
9.2 on_exitハンドラ
9.3 エラーの遠隔処理
9.4 エラー処理の詳細
9.5 エラー処理用プリミティブ
9.6 リンクしたプロセスの集合
9.7 モニタ
9.8 キープアライブプロセス
第10章 分散プログラミング
10.1 名前サーバ
10.2 分散プリミティブ
10.3 分散プログラミング用のライブラリ
10.4 クッキー保護システム
10.5 ソケットによる分散
第11章 IRC Lite
11.1 メッセージシーケンス図
11.2 ユーザインターフェイス
11.3 クライアント側のソフトウェア
11.4 サーバ側のソフトウェア
11.5 アプリケーションの実行
11.6 チャットプログラムのソースコード
11.7 演習
第12章 外部接続の方法
12.1 ポート
12.2 外部のCプログラムとの接続
12.3 open_port
12.4 リンクインドライバ
12.5 いくつか注意すること
第13章 ファイルを使ったプログラミング
13.1 ライブラリの構成
13.2 さまざまな方法によるファイルの読み出し
13.3 ファイルに書き込む方法
13.4 ディレクトリ操作
13.5 ファイルに関する情報を得る
13.6 ファイルのコピーと削除
13.7 その他もろもろ
13.8 find ユーティリティ
第14章 ソケットを使ったプログラミング
14.1 TCPの使い方
14.2 制御に関する問題
14.3 接続はどこから来たか?
14.4 ソケットのエラー処理
14.5 UDP
14.6 複数のマシンへのブロードキャスト
14.7 SHOUTcastサーバ
14.8 さらに深く
第15章 ETSとDETS:大規模データ記憶機構
15.1 テーブルに対する基本操作
15.2 テーブルの型
15.3 ETSテーブルの効率に関する問題
15.4 ETSテーブルを作る
15.5 ETSを使ったプログラムの例
15.6 DETS
15.7 ここでは取り上げなかったこと
15.8 ソースコード
第16章 OTP入門
16.1 汎用サーバへの道
16.2 gen_server事始め
16.3 gen_serverのコールバックの構造
16.4 コードとテンプレート
16.5 さらに深く
第17章 Mnesia:Erlangの標準データベース
17.1 データベースの問い合わせ
17.2 データベースのデータの追加と削除
17.3 Mnesiaのトランザクション
17.4 複雑なデータをテーブルに格納する
17.5 テーブルの型と置き場所
17.6 新品のデータベースを作る
17.7 テーブルビューア
17.8 さらに深く
17.9 ソースコード
第18章 OTP でシステムを作る
18.1 汎用イベント処理
18.2 エラーロガー
18.3 アラームの管理
18.4 アプリケーションサーバ
18.5 監視ツリー
18.6 システムを起動する
18.7 アプリケーション
18.8 ファイルシステムの構成
18.9 アプリケーションモニタ
18.10 さらに深く
18.11 素数はどうやって作る?
第19章 マルチコアに取り組む前に
第20章 マルチコアCPUのプログラミング
20.1 プログラムがマルチコアCPUで効率良く動くようにする方法
20.2 逐次コードを並列化する
20.3 小さいメッセージで大きい計算をする
20.4 mapreduceとディスクの索引
20.5 将来の発展に向けて
付録A プログラムのドキュメントを書く
A.1 Erlangの型記法
A.2 型を利用したツール
付録B Microsoft WindowsでErlangを使う
B.1 Erlang
B.2 MinGWを入手してインストールする
B.3 MSYSを入手してインストールする
B.4 MSYS Developer Toolkitをインストールする(任意)
B.5 Emacs
付録C 参考文献
C.1 オンラインのドキュメント
C.2 書籍と論文
C.3 リンク集
C.4 ブログ
C.5 フォーラム、オンラインコミュニティ、交流サイト
C.6 会議
C.7 プロジェクト
C.8 文献目録
付録D ソケットアプリケーション
D.1 例
D.2 lib_chan の仕組み
D.3 lib_chan のコード
付録E その他
E.1 解析やプロファイリングのためのツール
E.2 デバッグ
E.3 トレース
E.4 コードの動的ロード
付録F モジュールと関数のリファレンス
F.1 applicationモジュール
F.2 base64モジュール
F.3 beam_libモジュール
F.4 cモジュール
F.5 calendarモジュール
F.6 codeモジュール
F.7 detsモジュール
F.8 dictモジュール
F.9 digraphモジュール
F.10 digraph_utilsモジュール
F.11 disk_logモジュール
F.12 eppモジュール
F.13 erl_evalモジュール
F.14 erl_parseモジュール
F.15 erl_ppモジュール
F.16 erl_scanモジュール
F.17 erl_tarモジュール
F.18 erlangモジュール
F.19 error_handlerモジュール
F.20 error_loggerモジュール
F.21 etsモジュール
F.22 fileモジュール
F.23 file_sorterモジュール
F.24 filelibモジュール
F.25 filenameモジュール
F.26 gb_setsモジュール
F.27 gb_treesモジュール
F.28 gen_eventモジュール
F.29 gen_fsmモジュール
F.30 gen_sctpモジュール
F.31 gen_serverモジュール
F.32 gen_tcpモジュール
F.33 gen_udpモジュール
F.34 globalモジュール
F.35 inetモジュール
F.36 initモジュール
F.37 ioモジュール
F.38 io_libモジュール
F.39 libモジュール
F.40 listsモジュール
F.41 mathモジュール
F.42 ms_transformモジュール
F.43 net_admモジュール
F.44 net_kernelモジュール
F.45 osモジュール
F.46 proc_libモジュール
F.47 qlcモジュール
F.48 queueモジュール
F.49 randomモジュール
F.50 regexpモジュール
F.51 rpcモジュール
F.52 seq_traceモジュール
F.53 setsモジュール
F.54 shellモジュール
F.55 slaveモジュール
F.56 sofsモジュール
F.57 stringモジュール
F.58 supervisorモジュール
F.59 sysモジュール
F.60 timerモジュール
F.61 win32regモジュール
F.62 zipモジュール
F.63 zlib
付録G 訳語一覧
索引