コース 2
じぶんの言語をつくる
言語は、与えられるものではなく設計するもの
電卓から始めて、変数、分岐、関数、そして自分だけの文法へ。コース1で使った「にわ語」の正体を、作る側から解き明かします。
- 01 言語をつくるって、どういうこと? インタプリタの3段階——粒に分ける、木にする、意味にする。完成見本の言語を解剖して、見取り図を手に入れる。
- 02 数しか話せない言語 プログラム全体が、ただの1個の数。世界最小の言語を完成させて、「言語を作ったことがある人」になる。
- 03 たし算の木 言語に「+」と「-」を教える。粒の並びを木に組み、木を畳んで値にする——インタプリタの心臓部が今日、動き出す。
- 04 かけ算と、優先順位のなぞ なぜ「1 + 2 × 3」は7なのか。優先順位の正体は木のかたちであり、木のかたちは文法が決めている——電卓、ここに完成。
- 05 エラーを、ことばにする エラーメッセージは言語の「人格」。どこで・何を期待して・何が来たか——誠実な返事の書きかたを、作る側から設計する。
- 06 名前を、おぼえる言語 変数の実装は、名前と値の対応表——環境——が1冊あるだけ。コース1で使った「名づけの魔法」を、今度はかける側から種明かしする。
- 07 文の列、プログラムらしさ 1行なら計算、行の列はプログラム。その境目はどこか——文の配列・共有される環境・上から順に回るループという、実行の正体に会いに行く。
- 08 「ほんとう」を、決める 言語に true/false という第二の値の種類を教え、比較と if/else を実装する。「1は真か?」——その答えは言語ごとに違う。真理の境界線すら、設計者が引いている。
- 09 くりかえしと、止まらない機械 言語に while を教える——回数を前もって知らないくりかえし。その力を得た瞬間、言語には「止まらない可能性」が生まれる。止め方の設計までが、今日の仕事。
- 10 ことばを、定義できる言語 にわ語で預かってもらった「引数がない」不便を、作る側の手で解消する。呼び出しのたびに環境を1冊重ねれば、スコープが生まれ、再帰は勝手に動き出す。
- 11 文法は、きみが決める if は本質か、衣装か。キーワード表を差し替えて、あなたの言語の見た目を設計する——そして、にわ語の正体が明かされる。
- 12 言語に名前をつけて、世に出す 最終レッスン。あなたの言語に名前をつけ、リンクに符号化して、世に出す。言語の系譜に、あなたの一行が加わる日。