Java 中的术语是什么?

What is a term in Java?

我正在实施一个应用程序,该应用程序使用 Posnett、Hindle 和 Devanbu (here) 提出的可读性公式来计算 Java 文件的可读性。

公式为:z = 8.87 - 0.033 * Volume + 0.40 * Lines - 1.5 * Entropy

他们说 Entropy 是根据术语(令牌)的计数计算出来的 或字节)以及唯一项和字节的数量。

我做了一些研究,但在 Java 中找不到术语的定义。我唯一找到的是 this,其中列出了一些 "useful Java terms",但我不认为这些是 Java.

中唯一的术语

那么,我应该将什么视为 Java 条款?谁能给我解释一下?

它不特定于 Java。在 Java 中有一个 'term' 这样的东西,你会在 JLS 中找到它,但这不是他们所说的。他们谈论的是令牌 字节,一般而言,而不是特定于语言的。在一个地方标记 and 字节,这似乎是一个错误。

The terms here can be bytes or tokens, and we use both in this paper. [emphasis added]

您混淆了单词 "term" 的不同用法。两个相关的定义是:

  • 在特定上下文中具有特殊含义的 word/phrase。 生物老师可能会说 "make sure to study the terms from Chapter 14 for the quiz tomorrow"。这是 "term" 在您的 "useful Java terms".
  • 列表中的用法
  • 事物序列中的一个元素。 例如,如果您有一个字符序列 qwerty,那么 w 是一个 term 因为它是那些字符之一。这是熵计算中使用的定义。具体来说,"term" 可以表示源代码中的单个字符(字节),或 Java 中的 "token",表示代码的任何部分在 Java 中表示同一事物=] 语法(int foo = bar-3; 包含标记 intfoo=bar-3;).

注意:在处理编程时,字节有时与字符同义,因为字符存储在一个字节的内存中。