日本語版のためのまえがき
監訳者まえがき
訳者まえがき
Introduction イントロダクション
Part 1 プログラミング言語とは
Chapter 1 歴代のプログラミング言語たち
1.1 プログラミング言語古生物学
1.2 最初のプログラミング言語
1.3 ALGOL
1.4 APL
1.5 BASIC
1.6 PL/I
1.7 Logo
1.8 Simula
1.9 Pascal
1.10 Prolog
1.11 Smalltalk
1.12 Standard ML
1.13 本章のまとめ
Chapter 2 プログラミング言語の本質
2.1 プログラミング言語の定義
2.2 構文とセマンティクス
2.3 プログラミング言語の実装
2.4 データ型
2.5 データ構造
2.6 変数とスコープ
2.7 プログラムのフロー制御
2.8 プログラミングパラダイム
2.9 まとめ
Chapter 3 チューリングマシンおよびチューリング完全
3.1 停止性問題
3.2 チューリングマシン
3.3 万能チューリングマシン
3.4 チューリング完全性
3.5 チューリングマシンを作ろう
3.6 まとめ
Part 2 非定型プログラミング言語
Chapter 4 Forth
4.1 インストール
4.2 起源と哲学
4.3 言語
4.4 平方根の再検討
4.5 考察
4.6 まとめ
Chapter 5 SNOBOL
5.1 インストール
5.2 起源と哲学
5.3 言語
5.4 SNOBOLによる機械学習
5.5 議論
5.6 まとめ
Chapter 6 CLIPS
6.1 インストール
6.2 起源と哲学
6.3 言語
6.4 CLIPSイン・アクション
6.5 議論
6.6 まとめ
Part 3 難解プログラミング言語
Chapter 7 ABCのABC
7.1 ABC
7.2 ABC2
7.3 ABC2イン・アクション
7.4 議論
7.5 まとめ
Chapter 8 FRACTRAN
8.1 FRACTRANの仕様
8.2 2つの実装の物語
8.3 FRACTRANを使う
8.4 FRACTRANを理解する
8.5 その他のFRACTRANのサンプル
8.6 議論
8.7 まとめ
Chapter 9 PIET
9.1 インストール
9.2 Pietを理解する
9.3 Pietイン・アクション
9.4 ピエト・モンドリアンへのオマージュ
9.5 Pietの世界
9.6 考察
9.7 まとめ
Chapter 10 Brainfuck
10.1 BFとは何か?
10.2 2つの実装
10.3 BFイン・アクション
10.4 BFマルチバース
10.5 考察
10.6 まとめ
Chapter 11 Befunge
11.1 Befunge-93ワールドツアー
11.2 Befungeの実践
11.3 考察
11.4 まとめ
Part 4 自家製難解プログラミング言語
Chapter 12 Filska
12.1 哲学とデザイン
12.2 Filskaの実装
12.3 まとめ
Chapter 13 Filskaを使う
13.1 こんにちは、世界!
13.2 フィボナッチとは誰か
13.3 乱数
13.4 シンプルなフラクタル
13.5 問題の根本に迫る
13.6 直線への線形最小二乗フィット
13.7 考察
13.8 まとめ
Chapter 14 Firefly
14.1 哲学と設計
14.2 実装
14.3 micro:bitの設定
14.4 まとめ
Chapter 15 Fireflyを使う
15.1 プロセス
15.2 フライ・タイム
15.3 スペース・トレック
15.4 光輝くベートーヴェン
15.5 ダンス・ダンス
15.6 ティー・タイム
15.7 考察
15.8 まとめ
Chapter 16 さらに先へ
16.1 紹介しきれなかった言語たち
16.2 プログラミング言語リソース
16.3 エピローグ
Appendix Fireflyによる遺伝的プログラミング
A.1 遺伝的プログラミング入門
A.2 遺伝的プログラミングの仕組み
A.3 LED表示の定義
A.4 簡易版Fireflyインタプリタ
A.5 遺伝的アルゴリズム
A.6 全てを1つにまとめる
A.7 Fireflyのプログラムの発展
A.8 考察
A.9 最後の感想