0269デフォルトの名無しさん
2015/02/17(火) 22:00:01.91ID:qlRtFPhT1. SqueakではなくGNU Smalltalkを例に出した理由
Squeak限定じゃなくSmalltalk一般の話かと思いまして
処理系について意識してませんでした。すみません。
2. 数値計算の最適化を上げた理由
Message送信が最適化で省略されない場合の利点を
説明するつもりで書きました。
#ifTrue:ifFalse:で有用な例を示さなかったのは
すぐ有用な用途が浮かばなかったからです。
3. なぜ既存のClassではなく自作Classを例に使ったか
最適化が適用されない既存のClassが
思いつかなかったからです。
SqueakやPharo基準で考えれば、
自作じゃなくてもCollection系で良かったですね。
レスを書いた時は思いつきませんでした。
4. なぜnilを継承したか
Objectを継承すると、ObjectがMethodを実装しているMessageを
#doesNotUnderstand:で委譲できなくなるためです。
SqueakではProtoObjectを使いますが、
GNU SmalltalkやVisualWorksではnilを使います。
5. 何について理解が深まるか
最適化はオマケなので、最適化されるMessageだからと言って
必ず最適化される訳ではないし、
最適化によって自作ClassのObjectを渡すと
動かなかったりするわけではない
という事が理解いただければと考えています。