広く自動化されたソース コード分析およびリエンジニアリング (変換) ツールの開発を容易にする (単純化する) プログラミング言語の一般的な特性/特性は何ですか?
私は主に、静的分析ツールとリファクタリング ツールの開発を容易にするプログラミング言語の機能について考えています (つまり、Java と C++ を比較します。前者はリファクタリングのサポートが優れています)。
言い換えれば、自動化された静的分析とリファクタリングを最初からサポートするように明示的に設計されたプログラミング言語は、どのような特徴を備えていることが望ましいでしょうか?
Ada Semantic Interface Specification (ASIS) は、階層化されたオープン アーキテクチャであり、Ada ライブラリ環境へのベンダーに依存しないアクセスを提供します。これにより、Ada プログラムとライブラリの静的分析が可能になります。ASIS (Ada Semantic Interface Specification) は、アプリケーションが Ada コンパイル ユニットの完全な構文および意味構造にアクセスできるようにするライブラリです。このライブラリは通常、Ada プログラムである種の静的分析を実行する必要があるツールで使用されます。
ASIS 情報: ASIS は、ツールが Ada コンパイラまたはその他のソース コード アナライザーによって最適に収集されるデータを抽出するための標準的な方法を提供します。ASIS を使用するツール自体は Ada で記述されており、ASIS をサポートする Ada コンパイラ間で非常に簡単に移植できます。ASIS を使用すると、開発者は高度な移植性を備えた強力なコード分析ツールを作成できます。また、ソース プログラムからセマンティック情報を抽出するアルゴリズムを実装するためのかなりの費用を節約できます。たとえば、ソース コード メトリクスを生成し、コーディング スタイルや制限事項に対するプログラムの適合性をチェックし、相互参照を作成し、検証と検証のためにプログラムをグローバルに分析する ASIS ツールは既に存在します。
ASIS FAQも参照してください。
特に分析/変換目的でソースコードを操作するための、同様に包括的で完全なインターフェイスを提供する他のプログラミング言語を思いつきますか?
実行時に AST または ASG を検査する方法を提供するコア ライブラリ関数など、低レベルのフックを提供する特定の実装手法について考えています。