私は最近、コードが機能する可能性があるかどうかを実行前に知らせるカラー コーディング コンパイラ機能に接触しました。他のコンパイラでも採用されている同様のエラー修正方法を見てきました
プログラミングの方法や、自分自身のプログラミングの間違いからも学習できるタイプのコンパイラはありますか?
私は最近、コードが機能する可能性があるかどうかを実行前に知らせるカラー コーディング コンパイラ機能に接触しました。他のコンパイラでも採用されている同様のエラー修正方法を見てきました
プログラミングの方法や、自分自身のプログラミングの間違いからも学習できるタイプのコンパイラはありますか?
自分で学習するコンパイラについては知りませんが、開発者が学習して、典型的なエラー パターンとその可能性のある修正の検出を組み込むのを見てきました。
たとえば、Clang には次のようなものがあります。
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
が、基本クラスでも属性でもないため、考慮されません。
問題は、他の人よりも同じ間違いを犯す可能性が最も高いということです。したがって、コミュニティ全体がそれ自体について学び、そのツールを磨くことができます。
いずれにせよ、おそらくコンパイラが独自に学習するケースではありませんが、それが感覚的かどうか疑問に思うかもしれません!