2012-05-11 3 views
1

最近、あなたのコードがうまくいくかどうかをランタイム前に知ることができるカラーコーディングコンパイラ機能に触れました。他のコンパイラでも同様のエラー修正方法が使用されています。覚えているコンパイラ

プログラミング方法を学ぶことができるコンパイラの種類はありますか?

+2

これはヒューリスティックベースですか?エラーをコンパイルするのではなく、「間違いの可能性がある」ということですか?あなたはリファレンスがありますか?ありがとう。 –

+0

私は願っていません。学習コンパイラはすぐに私が愚かな過ちを犯し続けることを知り、最終的に私が間違いを犯さないようにするためにコンパイルをやめることになるでしょう。 「勝つ唯一の方法は遊ぶことではない」 :) – aquinas

+0

LinuxシェルのVIMには色分けがあります。しかし、私はまた、あなたが本当にやるべきことについての選択リストを持っているActionscript 3.0でエラー訂正を見ます。私は、問題を解決するためには、常に複数の方法が存在することを認識しています。だからこそ、私は自分のコーディングスタイルを学び、適切なオプションを提供できるコンパイラを欲しがり、私ができる間違いを事前に見ています。それは物事をより滑らかで興味深いものにするでしょう! –

答えて

0

私自身、学習するコンパイラについてはわかりませんが、開発者が一般的なエラーパターンとその可能性のある修正を検出して検出するのを見てきました。

例えばクランがあります

  • エラー回復をあなたが何を意味するのか推論することによって(可能な場合)、、あなたにそれを示唆し、それはあなたが行っていたものだったので、もしは、構文解析を続ける
  • おそらくエラーの警告の数for ();

また、例えばインデントの文が続くが、それは実際にはかなり驚くべきであるようなものを意識したタイプミス修正が含まれています。例えば、テストスイートを示しにおけるtypo-correction.cppファイル:

struct BaseType { }; 

struct Derived : public BaseType { // expected-note\ 
            {{base class 'BaseType' specified here}} 

    static int base_type; // expected-note {{'base_type' declared here}} 

    Derived() : basetype() {} // expected-error\ 
          {{initializer 'basetype' does not name a non-static\ 
           data member or base class; did you mean the base \ 
           class 'BaseType'?}} 
}; 

base_typeが近い(距離的に)ですが、それは、基本クラスでもそう考慮されない属性ではありません。

あなたは他の人と同じエラーをする可能性が最も高いので、コミュニティ全体が自分自身について学び、そのツールを磨くことができます。

おそらく、コンパイラがおそらく自分自身で学習するケースではありませんが、時にはそれが知覚的かどうか疑問に思うかもしれません!

関連する問題