これを迷信集に入れるべきかどうか迷ったのですが、口にこそ出さないものの、実際にこのように信じているとしか考えられないプログラマが少なからず存在することは事実です。彼らは、あたかもブロークンな英語のように、正しい文法で書こうという意思をまったく働かせることなく、デタラメなコードを書きます。そして、その背景には、「きっとコンパイラが気持ちを察してくれるに違いない」という期待が心のどこかにあるようです。
当たり前のことですが、コンパイラは単なるソフトウェアに過ぎません。できることはといえば、プログラム言語の仕様にしたがって、ソースコードを機械的に翻訳することだけです。そうしたコンパイラには、曖昧で複数の意味にとれるコードを見ただけで、それを書いたプログラマの人となりを考慮して判断することなどはできません。言葉足らずのコードを見ただけで、それを書いたプログラマが今抱えている問題を察して処理を補完してくれることもありません。
コンパイラがプログラマの気持ちを察することができるとすれば、せいぜい、エラーメッセージや警告メッセージを生成するときに、「統計上よくある失敗例に該当するのではないですか?」とアドバイスしてくれる程度なのです。
AIが発達した昨今、このような誤解はさらに増えるかもしれませんね。

![[迷信] absは常に非負の値を返す](https://www.kijineko.co.jp/wp-content/uploads/2021/06/4500264_s.jpg)
![[迷信] 割付けたメモリはプログラマが自分で解放しなければならない](https://www.kijineko.co.jp/wp-content/uploads/2021/06/2345228_s.jpg)
![[迷信] FILE型は構造体](https://www.kijineko.co.jp/wp-content/uploads/2021/06/4285286_s.jpg)
![[迷信] 識別子に使える文字は英数字と下線のみ](https://www.kijineko.co.jp/wp-content/uploads/2021/06/1210817_s.jpg)
![[迷信] setjmpマクロの返却値は変数に代入できる](https://www.kijineko.co.jp/wp-content/uploads/2021/06/4225767_s.jpg)
![[迷信] scanfではバッファオーバーランを防げない](https://www.kijineko.co.jp/wp-content/uploads/2021/06/3279051_s.jpg)