タグ

2019年1月25日のブックマーク (3件)

  • C++でうっかり無限ループを書くと鼻から悪魔が出てくる - Qiita

    C++で副作用のない無限ループを書くと未定義動作になります。 「未定義動作」というのは口に出すだけでC++プログラマーを震え上がらせる力を持った言葉です。「鼻から悪魔が出てくる」という言葉で説明されるように、未定義動作を含むコードを実行した結果は何も保証することができず、バグの発見やデバッグすら困難にさせます。未定義動作下においてはコンパイラの気分によってコード片が消え、trueとfalseが同時に成立し、タイムトラベルを引き起こします1。 そのためC++ではうっかり未定義動作が埋め込まれないよう注意が払われるのが普通です。 さて、以下のC++のコードは未定義動作を引き起こします。 下の例は実際にclang/LLVMで最適化を有効にしてコンパイルするとでたらめな値を返す関数ができました。 この話をしたところ、何人かに驚かれたり異論を受け取ったりしたので、この話題について少しまとめてみました

    C++でうっかり無限ループを書くと鼻から悪魔が出てくる - Qiita
    rryu
    rryu 2019/01/25
    終了しないループを終了する前提で最適化するので、本来存在しないはずの結果が現出することにより鼻から悪魔が出ると。
  • COBOLは高齢者しか読めないプログラムかどうかを検証するためにFizzBuzzを実装してみた - Qiita

    COBOLで書かれた特殊なプログラムなので高齢者しか読めず」というパワーワードに対する反応 というTwitterまとめ記事が話題になっており、自分自身もCOBOLを一度も書いたことがなかったので、これは良い機会だと思いCOBOLでFizzBuzzを実装してみました。 環境はUbuntu 16.04 xenial。Linuxで動くGNU COBOLという物があるらしいのでインストールして、ドキュメントはここにすべてまとまっていたので読みながら実装をしてみました。 インストール まずGNU COBOLのインストール。元々は Open COBOLという名前だったそうです。 $ sudo apt-get update $ sudo apt-get -f install $ sudo apt-get install open-cobol

    COBOLは高齢者しか読めないプログラムかどうかを検証するためにFizzBuzzを実装してみた - Qiita
    rryu
    rryu 2019/01/25
    コメントに別バージョンのコードがあるが、最初のバージョンは1960年だから全てのバージョンのCOBOLプログラムが読めるのは高齢者かCOBOLマニアになってしまいそう。
  • go-pear.pharにバックドアが仕込まれていた - Qiita

    半年以内にgo-pear.pharを使った人は必ずチェックしましょう。 2019/01/19 PEAR公式Twitterアカウントからツイート。 このアカウント全然活動してない。 https://twitter.com/pear/status/1086634389465956352 A security breach has been found on the https://t.co/dwKlscDEFf webserver, with a tainted go-pear.phar discovered. The PEAR website itself has been disabled until a known clean site can be rebuilt. A more detailed announcement will be on the PEAR Blog once i

    go-pear.pharにバックドアが仕込まれていた - Qiita
    rryu
    rryu 2019/01/25
    サイト改竄で配布ファイルに悪意あるコードを仕込まれてしまったらしい。オワコンになったOSSはそれだけで危険性が高まってしまうのか…