目次

概要

(書きかけ)

C# は、企画段階では “Safe C” (安全な C 言語)と呼ばれていた時期もあるそうです。 プログラマーが陥りがちなミスを避けるため、間違いそうな文法を避けたり、細かな規則を設けています。

予定

http://www.slideshare.net/Coverity/the-psychology-of-c-analysis-24025354

switch fall through
    これはでも、今の感覚からすると「breakを書かなくてもcaseをまたがない」にした方が好感度高そう。
    大体の人は「いちいちbreak書くのめんどくさい」って言うし。
    実際、最近の言語でbreak書く言語あまり見ないし。
    この辺りはC言語からの負の遺産。
    
unfase 制限
    
実装依存をなくす
x = ++x + x++; とかの、term の評価順
配列の境界外アクセス禁止、lengthを自分で知ってる
    
{
    {
        var x;
    }
    var x; // error
}
    
未初期化変数禁止、フィールド/配列の0クリア
    non-null 参照の考え方と相性悪いけど

数値系の暗黙的変換なし
    ポインター ⇔ 整数 ⇔ char, bool, enum
    符号

x + 1; みたいな、何も起こさない式だけを認めない

if (x = 0) エラー

return してないパスを認めない

更新履歴

ブログ