kono@ie.u-ryukyu.ac.jp (Shinji KONO) writes:

> > Algol68(?)の実装時に浮動小数点型の同値判定の基準をちょっと緩くして、
> > 「最後のビットだけが違っていても同値」
> > とかしたそうで、いや〜これが大失敗で(推移律が破れる)まいったよ……
> > てなことを書いてたと思いましたが
> 
> プログラム作法だったような..

発見しました。
サイエンス社の「構造化プログラミング」6 節

----8<----
ここで私の大失敗の 1 つを告白しましょう。
私達が ALGOL 60 の処理系を作るときに、
"x=y" が、ちょうど等しい場合のみならず、
最下位の桁だけ異なっている場合にも、
真(true)の値を返すように決定したのです。
というのは、もしそうでなければ、true の値をとることは、
とても起こりそうにないことでしょう。
私達は、丸めの誤差の範囲内で振動して収束する反復計算を
考えていたのです。
私達は、実数が等しいという点に、(きわめて好意的に)寛容であったのですが、
この演算は、弱すぎて使いものにならないことがすぐにわかりました。
何がだめかというと、これでは a=b かつ b=c が成り立っていても、
a=c が成り立つとの結論を出せないのです。
そして上記の決定は、ただちに変更しました。
----8<----

だそうで。
なぜ「すぐわかった」のかも書いて欲しかった。

# じいさんたちの失敗談はおもしろいなあ
# dmr の cd とか Knuth のスーパー乱数生成とか…

この本まだ売ってるんだ!!
<URL:http://www.amazon.co.jp/exec/obidos/ASIN/4781902766/250-3295821-9161026>
これは目次が書いてないけど、内容は三部構成で、
  1 構造化プログラミング論
  2 データ構造化序論
  3 階層的プログラム構造
となっております。
3 はオブジェクト指向の元祖 SIMULA 67 のペーパー。

神田敏広 <candy@kgc.co.jp>