【问题标题】:Errata for Java Language Specification 3rd EditionJava 语言规范第 3 版勘误表
【发布时间】:2010-04-18 05:15:07
【问题描述】:

我广泛使用 JLS 作为学习和教学资源,但我注意到其中存在一些错误。

有一些简单的拼写错误(例如JLS 5.1.4“convesions”),但也有一些我认为非常严重的错误。

例如,JLS 18.1 The Grammar of the Java Programming Language 应该是 Java 语言语法的权威参考,但它包含一个永远不会被使用的产生式规则! (例如MoreStatementExpressions)。这肯定是给定语法的其他部分存在更严重错误的迹象,对吧?

那么第 3 版有勘误表吗?会有吗?我们是否应该将我们发现的错误发送给 Sun/Oracle?会有第 4 版吗?

【问题讨论】:

  • 这是我能找到的最好的 - java.sun.com/docs/books/jls/updates.jsp
  • JLS 4.8 "一个原始类型 define 是"
  • JLS 15.8.2 "...类文字,C.Class,其中..."
  • JVM 规范的情况相同,上次我参与其中(大约两年前)。后面章节中有一些零碎的内容已经更新,但主文档的许多部分存在重大错误/更改,并且显然没有更新。
  • (我发现,在将其输入解析器生成器后,该语法包含许多错误。)

标签: java errata jls


【解决方案1】:

我能找到的最好的是"Maintenance Review of JSR 901 (Java(tm) Language Specification) for Java SE 7"


不过,OP所关心的问题并不严重……

这肯定表明给定语法的其他部分存在更严重的错误,对吧?

对此我会说“错误”。未使用的作品只不过是印刷/编辑错误。它对Java语法的含义没有影响。


FWIW:Oracle 的main JLS page 没有提及 JSR 901 修订工作(显然已经完成!)并且提供有关 JLS 的反馈的链接已损坏。

【讨论】:

    【解决方案2】:

    我也被 JLS 第 18 章中的语法问题所困扰,并且 JLS 其他地方的问题。尽管许多 Java 程序员可能不会 受到它们的影响,当您构建一个 编译器或程序分析工具。

    JLS 的许多问题已在最新版本的 JLS(“JLS,Java SE 版”或非正式的“JLS 第 4 版”)。 特别是第 18 章(Java 语法)已经完全 修订和重组。

    您可以在Java SE Specifications download page (direct link to JLS PDF) 找到最新的 JLS。

    2012 年 2 月 18 日更新: 如https://blogs.oracle.com/abuckley/en_US/entry/jls7_and_jvms7_online 所述,Java 语言的 Java SE 7 版本 规范和 JVM 规范现在可在 http://docs.oracle.com/javase/specs/ PDF 和 HTML 格式。

    【讨论】: