アカウント名:
パスワード:
言語仕様上は不定として、じゃあ Alchemy はどうしてくれるんだろうって話じゃね?
いけないアソコをおさわりしちゃった時に、Alchemy も何らチェックせず本当にリアルのアソコをおさわりしちゃうのか、それともそこらへんはきっちりチェックして、なんか例外を出すのかと。 あるいは本当におさわりするわけじゃないけども、仮想マシンの中で“世界のアドビ”フラグでも立てて、0xAD0BE の倍数でアホになる挙動をエミュレートするとか。
鼻から悪魔を出してもいいのなら、“じゃあ Alchemy ではこーし(ますっ|ませんっ)”と宣言してくれても何ら違反じゃないよね、っていう。
C だけじゃなく C++ も可能と言ってるのだから、throw や try/catch くらい視野に入っているでしょう。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike
ウイルス感染環境作んなボケェ! (スコア:-1, 荒らし)
メモリ破壊コード (スコア:1, 興味深い)
Re: (スコア:2, 参考になる)
別に何を再現する必要も無いのでは?
不定というのは、結果がどうなっても構わないという意味です。
暴走、例外はおろか、鼻から悪魔が飛び出しても言語規約上許されますし、
そんな分かりやすいリアクションではなく、一見正しく動作しているフリをしても構いません。
数多くのプログラマを苦しめてきた、Cの暗黒面の筆頭といって良い仕様です。
Re:メモリ破壊コード (スコア:1, 興味深い)
言語仕様上は不定として、じゃあ Alchemy はどうしてくれるんだろうって話じゃね?
いけないアソコをおさわりしちゃった時に、Alchemy も何らチェックせず本当にリアルのアソコをおさわりしちゃうのか、それともそこらへんはきっちりチェックして、なんか例外を出すのかと。
あるいは本当におさわりするわけじゃないけども、仮想マシンの中で“世界のアドビ”フラグでも立てて、0xAD0BE の倍数でアホになる挙動をエミュレートするとか。
鼻から悪魔を出してもいいのなら、“じゃあ Alchemy ではこーし(ますっ|ませんっ)”と宣言してくれても何ら違反じゃないよね、っていう。
Re: (スコア:0)
Re:メモリ破壊コード (スコア:2, 参考になる)
コードの中でそれをトラップさせる仕組みを追加しても構いません。
ある意味盲点ですが「そのまま正しく動作」させても規格上は問題ありません。
MS-DOS の頃など、V-RAM や OS のワークエリア等を直に読み書きしていたのがこれにあたります。
処理系を実装するにあたって何も定められていない以上、
そのようなコードを放置して、あるがままに動作させても言語仕様には違反しませんし、
処理系としてそのような動作を保証しても構いません。
でもそれは特定の処理系における実装の例に過ぎず、
他の環境でどうなるかは分からないし、環境ごとに異なる結果となっても、
そのいずれもがCの仕様に準じた正しい処理系だと言えるということです。
Re:メモリ破壊コード (スコア:1, すばらしい洞察)
そろそろ知ったかぶりが痛々しい
Re:メモリ破壊コード (スコア:1, おもしろおかしい)
元コメには、初級C言語を学んで欲しい。
http://www.st.rim.or.jp/~phinloda/cqa/cqa7.html [rim.or.jp]
Re:メモリ破壊コード (スコア:1)
C だけじゃなく C++ も可能と言ってるのだから、throw や try/catch くらい視野に入っているでしょう。