A sintaxe Groovy é um superconjunto exato da sintaxe Java?

Sendo um programador Java, eu realmente não tenho um background Groovy, mas uso muito o Groovy ultimamente para estender o Maven (usando GMaven). Até agora, eu poderia usar todo o código Java necessário no Groovy com o açúcar Groovy adicionado (métodos de metaclasse, mais operadores, encerramentos). Meu conhecimento do Groovy está longe de estar completo, mas eu gosto, especialmente para fins de script (sou um pouco cuidadoso ao usar uma linguagem tipada não estática em um cenário corporativo, mas esse não é o tópico aqui).

Enfim, a questão é:

Todo bit de código Java válido é automaticamente válido para o código Groovy? (Estou falando de código-fonte, não de classes compiladas, sei que o Groovy pode interagir com classes Java.) Ou existem construções Java que são ilegais no Groovy? Talvez uma palavra-chave Groovy reservada que possa ser usada como um identificador em Java ou algo mais? Ou o Groovy foi deliberadamente projetado para ser 100% compatível com o Java?

questionAnswers(4)

yourAnswerToTheQuestion