Java belongs to Sun/Oracle. C Sharp belongs to Microsoft. C++ belongs to nobody. But, does that means no body can produce a compiler that interpret a Java/CSharp program without the authorization from the owner? If no, exactly what kind of rights does the owner of a programming language has? I know Microsoft lost a lawsuit to Sun for producing J# with class lib incompatible to java lang spec. However, how did Sun impose a restriction on the implementation of a programming language while allowing someone else to develop a compiler (Visual J#) for the programming language?
The trademark "Java" belongs to Sun/Oracle. I believe that anyone who wants to implement a compiler and tool set for the JLS/JVM/JRE is free to do so as long as it's not called "Java". (Note that Oracle's lawsuit against Google is not about implementing the Java language, but about patents allegedly infringed in the process.)
The JLS may be copyrighted (meaning, the document itself), but it is freely available.
I know Microsoft lost a lawsuit to Sun for producing J# with class lib incompatible to java lang spec.
The lawsuit wasn't about J# (which is a .Net language), but about Microsoft's Java implementation (the IDE for which was called Visual J++). They licensed the Java trademark from Sun under the condition that their implementation would be faithful to the JLS and class libraries - which it wasn't.