作ったもの、気づいたこと、試したこと。元エンジニアの視点で技術も日常もつづる雑多ブログ「Weiβlogy」。
LOCを計測するツールです。LOCはLines Of Codeの略で、プログラムの規模として扱います。
空行(改行など空白だけの行)やコメント行(コメントと空白だけの行)は除く、2つの命令が書かれた行は2行と数える、括弧だけの行を除くなどの換算をした行数を論理LOC (logical LOC) といい、通常はこちらを使う。
– https://ja.wikipedia.org/wiki/LOC
世にあるステップカウンターは、有効行(実行行)、コメント行、空白行の3種を見ていることが多く、高度な換算はされていないようです。
そこで、本来あるべきステップカウンターを、以下の考察に基づき鋭意作成中です。
詳細はこちらをご覧ください。
C言語系統は命令の終端に”;”が必要な言語使用のため、その終端記号(または文字)を数えれば良い。また、IF文では”{“、SWITCH-CASE文では”{“と”:”に着目することで命令を計測します。
ただし、FOR文は3式で1セットの命令であるため、FOR文中の終端記号は無視しなければいけません。 VBやRubyのような言語、HTMLのようなタグが構成要素の場合は検討中です。
C言語系統はブロックの終端記号”}”がありますが、1命令のセットであるため、開始記号”{“とどちらか一方を測定対象とすべきです。 VBやRubyのような言語の”END”キーワードも同様です。
Javaのimport文、C#のusingディレクティブは、パッケージ名を省略するためだけに存在するもので、記載の有無がプログラムの動作に影響を与えませんので、命令とは位置付け異なります。
C言語系統のプリプロセッサーディレクティブは微妙ですが、動作に影響を与えるものもあるため、命令と考えます。
ただし、”#endif”、”#region”、”#endregion”は非命令とし計測しません。
C言語の#includeは、必須であることを除き、C#のusingディレクティブ同様、非命令とします。
考察は続きます。。。