ofellabuta

  • 最近買った本
  • 最近読んだ本
  • 最近観た映画
  • ストレンジコード

    一風変わったプログラミング言語の本。
    前半はプログラミング言語の歴史とプログラミング言語とは何か?ということを具体的な言語を取り上げながらの解説。後半は一般的なプログラミング言語とはことなる設計思想を持つ言語をForthやSNOBOLといった古典的なものからBrainfuckに代表されるような難解プログラミング言語まで実際のコードを交えながら解説、さらには独自の難解プログラミング言語の新たな実装までという盛り込みすぎという感じの内容。

    レベルも優しすぎず難しすぎずという絶妙なバランスで、実用性はともかくプログラミング言語に興味のある人間にはとても愉しめる内容。特に終盤で実装するオリジナル言語のFilskaはそのアイデアが実に面白い。

    日本語版のためのまえがき
    監訳者まえがき
    訳者まえがき

    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 最後の感想