Chapter 07

2.1 型は誰にとって必要?

さのたけと
さのたけと
2021.05.23に更新

型付けに関しては,「静的 vs 動的」「強い vs 弱い」などの立場で論争があるようだ.ここで思考実験によってこれらの選択を見てみよう.いま,何百万もの猿たちがコンピュータのキーボードを叩いて,プログラムを作り,コンパイルをし,実行している状況を想像してみよう.

機械語ならば,猿たちが作り出したどんなバイトの組み合わせも受け入れられ実行される.しかし高レベル言語になると,コンパイラは字句や文法エラーを判定できるようになる.多くの猿たちはバナナを得られないままに去っていくが[1],残ったプログラムはいくらか有用なものである可能性が高くなる.型チェックもまた,無意味なプログラムに対するバリアとして機能する.もっと言えば,動的型付け言語だと,型の不一致は実行時に発見されるが,静的型付け言語だとコンパイル時に発見される,これによって実行されるチャンスを得る前から多くの不正確なプログラムをはじき出すことができる.

問題は,我々は猿たちを喜ばせたいのか,または正しいプログラムを作りたいのかだ.

タイピングモンキーの思考実験で通常設定されるゴールは,シェイクスピアの全作品を作り出すことだ.スペルチェッカーと文法チェッカーが動いていれば,オッズを大幅に増やしてくれるだろう.加えて型チェッカーは,ロメオがちゃんと人間かどうかとか,葉っぱが生えてきたりしないかとか,強力な重力場の中に光子を閉じ込めてしまわないか,といったことのチェックに当たる.

(和訳:@taketo1024

脚注
  1. 原文: "Lots of monkeys will go without bananas" どういう状況?何か元ネタがある? ↩︎