Re: || について (Re:フレーム非対応のブラウザについて (||について)
kuno@gssm.otsuka.tsukuba.ac.jp writes:
> 学生時代、Fortranの論理演算子(.AND. とか .OR. とかのこと)は両
> 側を評価しなくてもよい)と学んだので。短絡評価は保証されてはいな
> いがコンパイラのコードとして許容されているというか。
中田育男先生の「コンパイラ」(産業図書)に、詳しい解説がありましたね。
言語仕様としては、
(1)必ず短絡評価する
(2)短絡評価するかもしれないし、しないかもしれない(副作用を使ったら誤り)
(3)短絡評価しない(コンパイラは、副作用がない時に限り短絡評価してよい)
の3とおりでしょうか。副作用のない言語だと意味のない区別ですけど。
Fortranは(2)ですか。Pascalは(3)ですね。
> > (1)と(2)は、別の概念なので両方用意したということでしょう。いかにもAda
> > らしいですね。
>
> …Cだって | と || とか両方ありますよね(ちょっと違うけど) 久野
値域がだいぶ違いますが、両辺が0か1ならたしかに…
MS BASICのAND, OR, NOTはCでいうと&, |, ~でしたね。だから「真」は&HFFFF
だった。
前田敦司
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735