バグの出にくい言語仕様を考える。

このエントリーをはてなブックマークに追加
95デフォルトの名無しさん
想定できるバグ(*1)を起こしうる記述を徹底的に制限して、
その類は全部コンパイル エラーにさせる。
アルゴリズムや記述方法(インデントの有無など)も
バグの引き金になるようなものは一切認めない。

*1 仕様との不一致は無視


ウザそうだ
96デフォルトの名無しさん:2005/03/30(水) 19:36:01
>>95
次第にそれが快感になってくる。

97デフォルトの名無しさん:2005/03/30(水) 19:42:40
よっしゃぁぁぁぁああああ、やっとコンパイル通ったぞぉぉおぉぉぉ!

って感じに喜べそうだ
98デフォルトの名無しさん:2005/03/30(水) 19:56:06
>>95
想定の範囲内というのが、堀江の脳内並みに広大になりそうだ。
99デフォルトの名無しさん:2005/03/30(水) 21:08:05
lintとかってバグをつぶすのに役に立ってるのかね。
あんまり役に立ってないイメージがあるんだが。
100デフォルトの名無しさん:2005/03/30(水) 21:11:40
使いこなせないのと便利じゃないのは同意じゃないわけで
101デフォルトの名無しさん:2005/03/30(水) 21:12:08
Adaなんかが確かバグを出しにくい(≒コーディングメンドクサイ)
あれこれの機能を持っていたような・・・
102デフォルトの名無しさん:2005/03/30(水) 21:13:08
    int a;
        int len;
    len = GetFileSize("〜.bmp");

Error(line: 1) - 分かりにくい名前をつけることはできません。
Error(line: 2) - インデントに問題があります。
Error(line: 2) - 変数名と用途があっていません。
    :
    :
103デフォルトの名無しさん:2005/03/31(木) 01:05:48
インデントはともかく、裏を返せばコンパイラの辞書にない変数名は付けられないと。
104デフォルトの名無しさん:2005/03/31(木) 01:07:31
>>103
その辺は動的に。
105デフォルトの名無しさん:2005/03/31(木) 01:28:06
>>99
eclipse のようにリアルタイムで通知してくれればまた別だろうね。
106デフォルトの名無しさん:2005/03/31(木) 16:12:51
全ての変数はボラタイル
107デフォルトの名無しさん:2005/03/31(木) 19:12:33
強い型付け&型推論
108デフォルトの名無しさん:2005/03/31(木) 19:31:09
1関数80行超えるとコンパイルエラー
109デフォルトの名無しさん:2005/03/31(木) 20:10:51
ネストが5以上はコンパイルエラー
110デフォルトの名無しさん:2005/03/31(木) 21:02:01
ソースコードにおけるコメントの比率が5〜10%に収まっていないとコンパイルエラー。
111デフォルトの名無しさん:2005/03/31(木) 21:04:23
個人的に#if 0 〜#endifの箇所はいっそのこと削除してほしい
漏れはバリバリ残してるがな
112デフォルトの名無しさん:2005/03/31(木) 21:06:50
>>109
え、なんで〜 lispとかネストしまくりやん!!!
113デフォルトの名無しさん:2005/03/31(木) 21:12:08
MISRA-Cとかどうなの?
114デフォルトの名無しさん:2005/03/31(木) 21:18:43
依存関係のある関数どうしで重複ロジックがあるとコンパイルエラー
115デフォルトの名無しさん:2005/03/31(木) 21:22:38
え〜 関数の多重定義できないの〜 最低
116デフォルトの名無しさん:2005/03/31(木) 21:33:30
インデントをもっと進化させられないだろうか。
ネストが深くなるとちゃんとインデントしてあっても
わけわからんくなる。
117デフォルトの名無しさん:2005/03/31(木) 21:33:40
朝ごはん食べてないとコンパイルエラー
118デフォルトの名無しさん:2005/03/31(木) 21:40:13
スレッドや子プロセスは非サポート
119デフォルトの名無しさん:2005/03/31(木) 22:30:04
ユニットテストが完備していないとコンパイルエラー
120デフォルトの名無しさん:2005/03/31(木) 22:36:04
名前規則に反しているとコンパイルエラー
121デフォルトの名無しさん:2005/03/31(木) 23:06:56
マジックナンバーはコンパイルエラー