- - PR -
1行に代入文2個 これは何?
投稿者 | 投稿内容 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-03-02 17:44
いげ太さんのおっしゃる件については
と同意していますよ。 その上で、object氏が提唱している件について
と問題を指摘しているわけです。 | ||||||||||||||||||||
|
投稿日時: 2007-03-02 18:15
なるほど失礼いたしました。読み解きが足りなかったようで。
数学によって展開した理論が数学的な「明示 / 言明」に至ってないことが問題、 と指摘されているわけですね。 | ||||||||||||||||||||
|
投稿日時: 2007-03-05 23:14
>object さん
お久しぶりです。 あいかわらずですね
「hoge = hoge +0.1」 hoge が整数型で値が 2 の場合、最終的な右辺値は 2.1 で、それを 2 に変換するのは「=」じゃないんでしょうか? 右辺は原因、左辺は結果。 なので、
「等しい」より「代入」の方がしっくりくるんですけど.. 「代入」の裏は「等しい」であったとしても、「等しい」に裏はないですから。 『「代入」という意味より「等しい」という意味』にはもっと深い何かがありますか? | ||||||||||||||||||||
|
投稿日時: 2007-03-06 13:20
objectです。
>ラフィンさん >「hoge = hoge +0.1」 >hoge が整数型で値が 2 の場合、最終的な右辺値は 2.1 で、それを 2 に変換するのは「=」じゃないんでしょうか? 少し表現が、微妙になりますが、 本来、タイプの異なるものは、代入出来ません。 この事は、厳しく・厳密に考える必要があります。 #数学に於いても、これは出来ません。 #但し、抽象化が行われている場合は、同じの意味が変化しています。 #演算等の処理も、そのままでは出来ません。 従って、変換自体は、代入に付随して生じたものだと思います。 #その処理は、コンパイラが自動で生成していますが。 >「等しい」より「代入」の方がしっくりくるんですけど.. >「代入」の裏は「等しい」であったとしても、「等しい」に裏はないですから。 これも表現が微妙になりますが、本来、 「等しくする為に行うのが代入」 ではないのでしょうか? #自分の意識に注意してみると、それは理解出来ると思います。 例がプリミティブになっているので、もう少し表現を一般化してみます。 それぞれが、あるインスタンスの部分的な値とすると、「hoge = hoge + 0.1」は a.set_hoge() = a.get_hoge() + b.get_0.1() #0.1に付いては、もっと一般的にした方が良いと思いますが、取り敢えず。 ここで、 set_hoge()、get_hoge() は、「hoge、0.1」が入れる箱(アドレス)になっているという意味です。 #箱だから、利用するには必ず出し入れしないと駄目。 #getは取り出す操作、setは、中に入れる操作。 >『「代入」という意味より「等しい」という意味』にはもっと深い何かがありますか? 私は、 「等しい」という概念は、思考の基本を支えている と思っています。 数学でも、「同値律」が認識されていますが、 これは「等しい」の3つの側面を表現したものだと思います。 PCでも、「メモリテスト」で「ライトチェック」をします。 これは、「書いた値と読み出した値の相等チェック」です。 相等性が崩れると、そこにあるのは「混沌」だけだと思います。 =========================== >ALL このスレで、あすかさんが質問されているのは、恐らく 既に正常に動いているコードの「その表現としての意味」 だと思います。 従って、代入表現に関連する難しい問題は、重要ですが、 「動作可能なドキュメント」という説明の次に来るべきものではないでしょうか? どんなに難しい問題があっても、既に動いているソースでそう記述されているのですから。 | ||||||||||||||||||||
|
投稿日時: 2007-03-06 14:17
ところで、「動作可能なドキュメント」説はいまのところ否定されているわけですが、
その点についての反論はないのですか? 要約しておくと、 「動作可能なドキュメントとして明示」してあるのかそうでないのかは プログラムの動作に対する読み手側の理解に依存しているため、 形式的な見え方を現在のプログラミング言語では信用することができない。 動作可能なドキュメントでありたいというのはただの願望であり、 現実的に代入式が動作可能なドキュメントなわけではない。 ということなのですが。 「動作可能なドキュメントとして明示」するのが理想だね、という話なら同意。 「動作可能なドキュメントとして明示」されているね、という話なら同意できません。 # 現場の声を聞くことは諦められたのでしょうか | ||||||||||||||||||||
|
投稿日時: 2007-03-06 18:47
「どうして等しいんだ!」と憤るあらしを、 「Let a Equal To 1 で 1 に等しくする、つまり、a に 1 を入れるってことなんだ」と、さとるが説明していたんだけど(ただしN60BASIC)、またあらしの疑問に戻すんだ。 え?なにか誤解してる? あなたが人に誤解を与えない書き方をするように努めないなら、私はあなたをゆるしませんよ!いいですね! | ||||||||||||||||||||
|
投稿日時: 2007-03-06 22:26
なつかしい。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?mode=viewtopic&topic=33981&forum=7&start=10 | ||||||||||||||||||||
|
投稿日時: 2007-03-06 23:33
それが全てとは思えないですが、確かに思考の基本ではありますね。
「等しくする為に行うのが代入」に関しては、当初より全く依存ありません。 ただ、このスレッドのテーマが「==」だった場合は代入を意識する云々の話にはならないと思いますし、そうなるのはおかしいと思います。 これは「表裏一体」にひっかった為に問いかけただけですが、あまり重要視していません。
さて、問題はここででてきた「本来」と、現実には暗黙の型変換を認めている言語があるという事実と、
との関連です。 暗黙の型変換を行う言語仕様において「hoge = hoge +0.1」の「=」が素直に 2.1 をセットするわけではなく、エラーになるわけでなく、2.0 をセットする事実に対して「実行可能なドキュメント」としてはどうなんでしょう? 1.暗黙の型変換を許す言語仕様はけしからん 2.暗黙の型変換はわかっていることだから許容範囲 3.明確な型変換をすべき 4.これはあくまで「本来」ないしは「理想」の話 3.でいいんじゃないでしょうか? 実は一番興味を引かれたのが、
なんですが、何がどう数学的な説明になるのかわかりませんでした。 スレッドの雰囲気からして書かない方が良いと思いますし、書きたくないでしょうから、気が向いたらPMで教えてください。 |