私たちのチームと一緒に、オンライン イベント用に C 言語を使用してデッドコード除去アルゴリズムを作成しようとしています。
要件は.....
- C プログラムのソース ファイルを読み取るには、多くの形式のデッド コードが含まれています。
- そして、出力はすべてのデッドコードのないファイルである必要があります。
インターネットをサーフィンしているときに、SOリンクに出くわしました...
コード内のどの部分がまったく使用されていないかを知るにはどうすればよいですか?
これらのリンクを見る前に、基本的なアイデアがありました... 通常のファイル ストリームを使用して入力 C ファイルを 1 行ずつ読み取り、文字列配列に格納します。次に、これらの文字列を分析し、if(0) や if(1) などの非常に基本的なデッド コードを特定します。そして、括弧を維持するためのスタックを作成します。そしてもっと...
しかし、これには大きな問題があります。このアイデアは、デッドコードを削除するよりも、文字列操作でより多くのことを行うことにつながります。
しかし、これらのリンクを見た後... Clang ライブラリ、抽象構文ツリー、Control-Flow-Graph などについて知るようになりました...
しかし、私たちはそれらのライブラリとそれらの概念について非常に初心者です。それらが C コードの解析に使用されていることがわかりました。
したがって、これらのAST、CFGに関するいくつかの基本的なアイデアと、コードでそれをどのように使用できるかを説明する基本的なガイダンスが必要です...
そのclangライブラリをmath.hのような通常のライブラリとして含めることはできますか?
そのライブラリはどこからダウンロードできますか?
これらの Clang ライブラリを Windows で使用できますか?