LOC

LOCは、lines of codeの略で、ソフトウェアの規模を表す指標のひとつ。ソースコードの行数を意味する。何の行数かを明確に示すため、SLOC (source lines of code) ということもある。
テキストファイルとしての行数を物理LOC (physical LOC) というが、これをそのまま使うことは少ない。空行（改行など空白だけの行）やコメント行（コメントと空白だけの行）は除く、2つの命令が書かれた行は2行と数える、括弧だけの行を除くなどの換算をした行数を論理LOC (logical LOC) といい、通常はこちらを使う。ただし、細かい規則にはさまざまな流儀がある。物理行数であればcodice_1など汎用の行数を数えるツールで、論理行数であれば汎用のテキスト処理ツールを利用するなどして、作業を自動化できる。
問題点.
LOCには以下のような問題がある。
このような問題があるため、LOCでソフトウェアの実際の規模を測るのは難しい。そのため、LOCに変わる指標としてファンクションポイント法などが利用されてきている。
簡単な例.
1からnまでの和を計算するC++のプログラムを例に取る。次の標準的なソースコードのLOCは（物理LOC、論理LOCとも）3行である。
int s = 0;
for (int i = 1; i <= n; i++)
 s += i;
コメント行があっても論理LOCは同じ3行である。（物理LOCは4行である）
// 1からnまでの和
int s = 0;
for (int i = 1; i <= n; i++)
 s += i;
次のソースコードは論理LOCが4行だが、処理内容はまったく同じである。
int s = 0;
int i = 1;
for (i = 1; i <= n; i++)
 s += i;
次のソースコードは、同じ結果を出す非常に高速なアルゴリズムで、論理LOCは1行である。
int s = (n + 1) * n / 2;
実際の製品の例.
 より。