The Java Language Specification (2nd Edition).
James Gosling, Bill Joy, Guy Steele, and Gilad Bracha.
Addison-Wesley, 1996. ISBN 0-201-31008-2.
Each edition of the Java Language Specification (JLS) specifies a
different version of the Java language. The Joos language that you
will implement in this course is a subset of the version of Java
specified in the 2nd edition. You may also find the 1st edition
useful because it contains an LALR(1) grammar for Java.