我正在实现一个应用程序,它使用Posnett,Hindle和Devanbu(here)提出的可读性公式计算Java文件的可读性。
公式为:z = 8.87 - 0.033 * Volume + 0.40 * Lines - 1.5 * Entropy
他们说Entropy
是根据术语(令牌)来计算的
或字节)以及唯一的术语和字节数。
我做了一些研究,但在Java中找不到术语的定义。我发现的唯一的东西是this,列出了一些有用的Java术语"但我不认为这些是Java中唯一的术语。
那么,我应该将其视为Java术语?任何人都可以给我一个exaplanation吗?
答案 0 :(得分:2)
你混淆了“术语”这个词的不同用法。两个相关的定义是:
qwerty
,那么w
就是一词因为它是其中一个角色。这是熵计算中使用的定义。具体来说,“term”可以表示源代码中的单个字符(byte),或Java中的“token”,这意味着代码的任何部分表示Java语法中的一个部分(int foo = bar-3;
包含令牌int
,foo
,=
,bar
,-
,3
和;
)。注意:处理编程时,字节有时与字符同义,因为字符存储在一个字节的内存中。
答案 1 :(得分:1)
它不是特定于Java。在Java中有一个“术语”这样的东西,你会在JLS中找到它,但这不是他们所说的。他们谈论的是令牌或字节,一般而言,不是语言特定的。并在一个地方令牌和字节,这似乎是一个错误。
这里的术语可以是字节或令牌,我们在本文中使用两者。 [强调补充]