• 締切済み

プログラムの評価に関して

C言語のソースコードを解析、評価しています。 コードがコメント(//や/* */)および#ifdefを多用しており 有効なコードが埋もれて見遠しが悪くなっています。 地道に草むしりのように無効な文を削除していますが、 簡単に処理するソフトは無いものでしょうか。 // 必要なコメント(説明文)のため削除したくない /* */ ばっさり削除 define無効な#ifdef ばっさり削除

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.5

>#3さん プリプロセッサ処理は、私も一瞬思いついたのですが、 ・マクロが全て展開される → defineで名前を付けた定数も、全てマジックナンバー直書き状態になる ・#includeしたファイルも展開される → プロトタイプや構造体等の宣言がずらーっと並ぶことになる と、今回の目的からは逆効果になると思います。 既存の静的解析ツールを使うとか、Perl等で自作するか、になると思います。 また、Syntax Color に対応したエディタで、色を工夫する、というのもいいかと。 > // 必要なコメント(説明文)のため削除したくない > /* */ ばっさり削除 この使い分け規則は徹底できているのでしょうか。 /* */ に説明があったら、手動でやる必要があります。

回答No.4

茶々を入れるようですが、 > C言語のソースコードを解析、評価しています。 は、どういう基準で解析、評価をしているのか疑問です。 ソースコードの評価ってのは、行数、コメント率、複雑さ、などで定量的に計測できるものでり、ツール(QAC)などで測定するものです。 > 有効なコードが埋もれて見遠しが悪くなっています。 ということは人間が解析するということであり、解析者の主観が入り、客観的な評価が得られません。 最終的にやりたいことは、解析、評価ではないのはないでしょうか?(リバースエンジニアリング?) リバースエンジニアリングなら、いくつかツールがあります。 最終的にやりたいことを明確にして、そのためのツールを探す方が効果的な場合もあると思いますよ。 コメントの削除ルールからすると、何らかのコーディング規則があると思われますが、それを徹底することがコードの見遠しをよくするための方法の一つではないでしょうか。 すでに作成されているコードについては何らかの方法でソースコードを整理する必要があるでしょうけど。

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.3

ほとんどのコンパイラで、ソースコードをプリプロセスした結果(コメント除去、マクロ展開など)を出力することができるはずです。 g++(gcc)や、cl(VisualC++)なら、-E というオプションで出力できます。

  • RandenSai
  • ベストアンサー率54% (305/561)
回答No.2

まじめに探せばたぶん見つかるでしょうが、ざっと見たところだとこれくらいでしょうか。 http://download.goo.ne.jp/software/contents/soft/win95/prog/se142888.html こちらは自力で何とかしろという案ですが、テキスト処理に強いスクリプト言語(perl,ruby,awkなど)で作ってしまえという作戦です。以下はawkで実装した、使われていない#ifdefを除外するというスクリプトの例です。こういう感じで/* */コメントも除去すればいいかと。#ifdefよりも考える条件がない分、簡単です。 http://awkerqaz.blogspot.jp/2013/10/c-ifdef-awk-script.html

  • koi1234
  • ベストアンサー率53% (1866/3459)
回答No.1

>簡単に処理するソフトは無いものでしょうか。 思い切り自分に都合がいい希望(汎用性がない)なので フリーソフトを無いとおもわれます 正直な話ソースが評価・解析できる人なら 自分で自作したほうが早いんではないですか   みたいな

関連するQ&A