X



プログラミングで y = 1 / (1 / x) ってやったらどうなるの?
■ このスレッドは過去ログ倉庫に格納されています
0001以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/10(月) 23:04:17.072ID:expyRxlYa
頭のいいコンパイラなら y = x にしてくれるのか?(機械語にするとき)

あっ、ちなみにインタプリタ言語やLLでは普通に t = (1 / x) を計算して y = 1 / t にするだろうそりゃ
うちは自動車メーカーだからな、使ってるのはC言語で、コンパイラは GHS MULTI っていうお前らが知らないコンパイラだよ
0002以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/10(月) 23:05:48.584ID:UZgSC1Nh0
どういう流れのスレに持って行きたいの?
0003奈緒
垢版 |
2022/01/10(月) 23:06:23.830ID:EzsP5VyU0
x=0でundefinedなのが生きない
0004以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/10(月) 23:06:49.356ID:+Ki/tVOh0
知らないコンパイラの話されたら分からないとしか言えない
0005以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/10(月) 23:07:21.626ID:expyRxlYa
>>3
C言語や機械語だと分母0で除算したらundefinedではなく0割りで内部割込みで停止するよ
0006以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/10(月) 23:07:45.474ID:EOjE74KF0
x=0が特異点になるかな
0007以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/10(月) 23:11:24.969ID:expyRxlYa
>>6
数学的には本来 x = 0 が特異点になるはず
0009以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/10(月) 23:12:21.223ID:expyRxlYa
>>8
     /: : : : : __: :/: : ::/: : ://: : :/l::|: : :i: :l: : :ヽ: : :丶: : 丶ヾ    ___
     /;,, : : : //::/: : 7l,;:≠-::/: : / .l::|: : :l: :|;,,;!: : :!l: : :i: : : :|: : ::、  /     ヽ
    /ヽヽ: ://: :!:,X~::|: /;,,;,/: :/  リ!: ::/ノ  l`ヽl !: : |: : : :l: :l: リ / そ そ お \
   /: : ヽヾ/: : l/::l |/|||llllヾ,、  / |: :/ , -==、 l\:::|: : : :|i: | /   う う  前  |
.   /: : : //ヾ ; :|!: イ、||ll|||||::||    ノノ  イ|||||||ヾ、 |: ::|!: : イ: ::|/   な 思 が
   /: : ://: : :ヽソ::ヽl |{ i||ll"ン    ´   i| l|||l"l `|: /|: : /'!/l     ん う
 ∠: : : ~: : : : : : : :丶ゝ-―-      ,  ー=z_ソ   |/ ハメ;, :: ::|.   だ ん
   i|::ハ: : : : : : : : : : : 、ヘヘヘヘ     、  ヘヘヘヘヘ /: : : : : \,|.   ろ な
   |!l |: : : : : : : : :、: ::\    、-―-,      / : : :丶;,,;,:ミヽ   う  ら
     丶: :ハ、lヽ: :ヽ: : ::\__  `~ "      /: : ト; lヽ)   ゝ
       レ `| `、l`、>=ニ´        ,  _´ : :} `   /
         ,,、r"^~´"''''"t-`r、 _  -、 ´ヽノ \ノ   /    お ・
       ,;'~  _r-- 、__     ~f、_>'、_         |  で  前 ・
      f~  ,;"     ~"t___    ミ、 ^'t         |  は  ん ・
      ,"  ,~         ヾ~'-、__ ミ_ξ丶     |  な  中 ・
     ;'  ,イ ..          ヽ_   ヾ、0ヽ丶    l         /
     ( ;":: |: :: ..          .`,   ヾ 丶 !    \____/
     ;;;; :: 入:: :: ::      l`ー-、   )l   ヾ 丶
     "~、ソ:: :い:: :     \_  ノ ,    ヾ 丶
0010以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/10(月) 23:16:51.584ID:Yt38vuH10
Cなら未初期化でわけわからんこたえがでるんじゃねーの
0011以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/10(月) 23:18:12.269ID:bY5SXPToa
コンパイルして機械語見たらわかる
0012以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/10(月) 23:19:49.797ID:AmV/v8FN0
そんなことはしないだろう
普通に式通りの計算するだけだ
0013以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/10(月) 23:20:03.168ID:jZg7H+fU0
俺のいた会社に来た元自動車メーカーの人はコンパイラがどうやってアセンブリにしてるか見てたけどな
ルネサスのコンパイラならCがどうアセンブラにしてるか簡単に見れそうだけど
0014以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/10(月) 23:20:12.181ID:joNn1Xqd0
つまり「このソースは、最適化によって動作結果が変わる場合があるのか?」という質問なのね?
0015以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/10(月) 23:20:21.146ID:expyRxlYa
>>10
もしスレタイの1文しかない前提ならそもそもコンパイルできないんだが

変数の宣言と使用前の初期化はしている前提な
未初期化変数を参照するのは、言語によってはコンパイル時エラーとなるが、
C言語の場合はコンパイラによっては警告を出してビルドが通ってしまうけどバグだね
0016以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/10(月) 23:22:56.462ID:joNn1Xqd0
MISRA C な lint に何か言われたりしないの?
0017以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/10(月) 23:24:31.644ID:+OTYRurjd
言語による
比較的最近のGOとかCotlinとかならコンパイル時に数式含めて最適化される
0018以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/10(月) 23:24:40.116ID:expyRxlYa
>>11
それな

ちなみに、諸事情で次のようなコードになるような設計になったんだが
y = CONST1 - (x + CONST2);
ビルドして機械語を見たら、次のコードと同じ処理になってたぜ
y = CONST3 - x;
(CONST3 は (CONST1 - CONST2) の計算結果)

>>13
うちで使ってるコンパイラだとGUI上で逆アセンブルした結果が見れるよ
0021以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/10(月) 23:27:04.020ID:expyRxlYa
>>16
うちだと静的解析ツールは QAC と Polyspace Bug Finder だから lint は知らない
てか、会社に行かないとこういうツール使えないわwww
さすがに個人で高いツールは買いたくないなwww
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況