論理LOC
ソースコードの行数だよ
空行とかコメント行は除いて数えるよ
簡単に書くよ
論理LOC(読:ロンリエルオーシー 英:logical lines of code)とは
人間語で書いたプログラムの元ネタ(ソースコード)の行数の数え方のひとつ
であり
空行
(何も文字が書いていない行、改行しかない行)とかコメント行は除いて、実際の処理部分のみの行数を数えるやり方
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「ソースコード」と「LOC」について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
ソースコードは「人間語で書いたプログラムの元ネタ」です。
プログラムを作って動かすまでの一般的な流れは
1.人間語でプログラムの元ネタを書く
2.元ネタを人間語から機械語に翻訳する
3.翻訳された指示に従って、コンピュータさんが お仕事する
です。
コンピュータさんは人間語が分かりません。
人間様はコンピュータさんの言葉が分かりません。
プログラムは人間様が作るものです。
そこで最初は人間様が分かる言葉でプログラムを作ります。
コンピュータさんに対する「あれをやれ」「これをやれ」な命令を人間語で書くのです。
次に人間語で書いたプログラムの元ネタをコンピュータさんが分かる言葉に翻訳します。
実際に お仕事をするのは、コンピュータさんですからね。
コンピュータさんが分かる言葉に変換する必要があるのです。
コンピュータさんが分かる言葉に翻訳したので、コンピュータさんは命令の内容を理解できます。
指示に従って、お仕事をしてくれるでしょう。
かなり簡略化した説明ですけどね。
これがプログラムを作るときの流れです。
この話で登場した
人間語で書いたプログラムの元ネタ
を「ソースコード」と言います。
LOCは「ソースコードの行数」です。
処理が何行書かれているかを示した数字です。
以上を踏まえて、本題に入ります。
例えば、そうですね。
以下の処理を見てください。
print "1行目だよ";
print "3行目だよ";
この処理は何行でしょうか?
単純に数えれば3行です。
1.print "1行目だよ";
2.
3.print "3行目だよ";
ソースコードが書いてあるファイル(ソースファイル)の行数を数えたら3行になっていますよね。
一方、処理に注目して数えたら2行です。
1.print "1行目だよ";
2.print "3行目だよ";
2行目の空行は、あってもなくても同じですからね。
print "1行目だよ";
print "3行目だよ";
は
print "1行目だよ";
print "3行目だよ";
と書いたのと同じです。
実質的には2行しかないと考えられるでしょう。
この2つの数え方のうち、後者の数え方である
空行とかコメント行とかは無視して、実際の処理部分だけを数えるやり方
が「論理LOC」です。
あと、ついでなので書いておくと、前者の
細かいことは気にしないで、単純にファイル内の行数を数えるやり方
は「物理LOC」と言います。
気が向いたら、セットで覚えてあげてください。
論理LOC:実際の処理部分だけを抜き出して行数を数える
物理LOC:単純にファイル内の行数を数える
です。
個人的にはLOCという尺度自体が気休め程度の信憑性だと思っていますが、一応
物理LOCよりも論理LOCの方がマシ
ということになっています。
当然ですよね。
//ここはコメントです。
//うんちゃら
//かんちゃら
//げふんげふん
//眠いです
//眠いですお腹も空きました
print "1行目だよ";
みたいな処理の行数を数えると、物理LOCで数えると7行です。
論理LOCで数えると1行になります。
論理LOCでも行数の水増しは できますけどね。
物理LOCの方が水増ししやすいのです。
一言でまとめるよ
まぁ「論理LOC」って単語が出てきたら「実際の処理部分のみを数えた、ソースコード
(人間語で書いたプログラムの元ネタ)の行数なんだな~」と お考えください。
おまけ
■訳してみるよ
「論理」は日本語ですね。
「LOC」は「lines of code(ラインズ・オブ・コード)」の略です。
「lines(ラインズ)」は「line(ライン)」の複数形です。
「line(ライン)」の意味は「線」とか「行」とかです。
「of(オブ)」の意味は「~の」です。
「code(コード)」は今回は「source code(ソースコード)」の略です。
「source code(ソースコード)」はIT用語の「ソースコード」です。
「source(ソース)」の意味は「源」とか「起源」とか「根源」とかです。
「code(コード)」の意味は「記号」とか「暗号」とか「符号」とか「コード」とかです。
何となく くっつけると
論理「源の記号」の行
となります。






