規模
LOC
size.loc — 物理行数。
| 項目 | 内容 |
|---|---|
| 定義 | ファイルの行数。 |
| スコープ | file, project |
| 入力 | ファイルのソーステキスト |
| 計算方法 | 行数を数える。末尾の改行は新しい行を作らない。プロジェクト:ファイルの合計。 |
| 単位 | lines |
| 言語依存性 | 言語に依存しない |
| 制約 | - |
| 参考文献 | - |
SLOC
size.sloc — ソースコードの行数。
| 項目 | 内容 |
|---|---|
| 定義 | コメント以外のトークンが 1 つ以上ある行。 |
| スコープ | function, file, project |
| 入力 | ファイルのソーステキスト、トークンの範囲 |
| 計算方法 | 複数行にわたるトークン(複数行の文字列など)は、またがるすべての行を占める。関数:関数の範囲の行(入れ子関数を含む)。プロジェクト:合計。 |
| 単位 | lines |
| 言語依存性 | 言語に依存しない |
| 制約 | - |
| 参考文献 | - |
コメント行数
size.comment_loc — コメントだけの行。
| 項目 | 内容 |
|---|---|
| 定義 | コメントトークンがあり、他のトークンがない行。 |
| スコープ | file, project |
| 入力 | ファイルのソーステキスト、トークンの範囲 |
| 計算方法 | コードと行末コメントがある行は SLOC で、コメント行ではない。プロジェクト:合計。 |
| 単位 | lines |
| 言語依存性 | 言語に依存しない |
| 制約 | 文字列リテラルとして書くドキュメント(Python の docstring など)は SLOC に数える。 |
| 参考文献 | - |
空行数
size.blank_loc — 空行。
| 項目 | 内容 |
|---|---|
| 定義 | どのトークンにも占められていない、空白だけの行。 |
| スコープ | file, project |
| 入力 | ファイルのソーステキスト、トークンの範囲 |
| 計算方法 | 複数行のコメントや文字列の中の空行は空行ではない。プロジェクト:合計。 |
| 単位 | lines |
| 言語依存性 | 言語に依存しない |
| 制約 | - |
| 参考文献 | - |
コメント率
size.comment_ratio — コメント行の割合。
| 項目 | 内容 |
|---|---|
| 定義 | コメント行数 / LOC。 |
| スコープ | file, project |
| 入力 | size.comment_loc, size.loc |
| 計算方法 | LOC が 0 なら not_applicable。プロジェクト:合計どうしの比。 |
| 単位 | ratio |
| 言語依存性 | 言語に依存しない |
| 制約 | - |
| 参考文献 | - |
文の数
size.statement_count — 文の数。
| 項目 | 内容 |
|---|---|
| 定義 | statement, declaration, branch, loop, return, jump の種類のノード。 |
| スコープ | function, file, project |
| 入力 | ノードの種類 |
| 計算方法 | 関数スコープは入れ子関数を含む。プロジェクト:合計。 |
| 単位 | count |
| 言語依存性 | 部分的に言語に依存する |
| 制約 | 何を文とみなすかは言語によって異なる(例:C の for の初期化子の宣言は数えるが、Python には相当するものがない)。 |
| 参考文献 | - |
トークン数
size.token_count — コメント以外のトークンの数。
| 項目 | 内容 |
|---|---|
| 定義 | コメント以外のすべての種類のトークン。 |
| スコープ | function, file, project |
| 入力 | トークン |
| 計算方法 | 文字列リテラルは 1 トークン。関数スコープは入れ子関数を含む。プロジェクト:合計。 |
| 単位 | count |
| 言語依存性 | 部分的に言語に依存する |
| 制約 | トークンの粒度は各言語の文法に従う(例:C の #include は 1 トークン)。 |
| 参考文献 | - |
関数の数
size.function_count — 関数の数。
| 項目 | 内容 |
|---|---|
| 定義 | IR 上の関数。メソッド、入れ子の関数、無名関数を含む。 |
| スコープ | file, project |
| 入力 | 関数 |
| 計算方法 | プロジェクト:合計。 |
| 単位 | count |
| 言語依存性 | 言語に依存しない |
| 制約 | - |
| 参考文献 | - |
関数の長さ
size.function_length — 関数がまたがる行数。
| 項目 | 内容 |
|---|---|
| 定義 | 関数のソース範囲の、最終行 − 先頭行 + 1。 |
| スコープ | function |
| 入力 | 関数のソース範囲 |
| 計算方法 | シグネチャ、空行、コメント行、入れ子関数を含む。 |
| 単位 | lines |
| 言語依存性 | 言語に依存しない |
| 制約 | - |
| 参考文献 | - |
平均関数長
size.avg_function_length — 関数の長さの平均。
| 項目 | 内容 |
|---|---|
| 定義 | 全関数の size.function_length の平均。 |
| スコープ | file, project |
| 入力 | size.function_length |
| 計算方法 | 関数がなければ not_applicable。 |
| 単位 | lines |
| 言語依存性 | 言語に依存しない |
| 制約 | - |
| 参考文献 | - |
最大関数長
size.max_function_length — 最も長い関数の長さ。
| 項目 | 内容 |
|---|---|
| 定義 | 全関数の size.function_length の最大値。 |
| スコープ | file, project |
| 入力 | size.function_length |
| 計算方法 | 関数がなければ not_applicable。 |
| 単位 | lines |
| 言語依存性 | 言語に依存しない |
| 制約 | - |
| 参考文献 | - |