Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I've decided to create a programming language of my own, mostly just for fun. However, I got interested in the legal aspect of it all.

You can, for example, licence specific programs under specific terms. However, how do you go about licensing a language? Also, by that I don't just mean the implementation of the language (compiler & VM), but the standard itself. Is there something else to a programming language I'm missing?

What I would like to achieve by such licensing:

  1. Make it completely FOSS (can a language even be FOSS, or is that the implementation that can be FOSS?)
  2. Establish myself as the author (can you legally be an author of a language? Or, again, just the implementation?)
  3. Make it so that anyone implementing my language would be required to attribute me (MIT-style. Please note that I do not have any hopes for anyone actually ever doing that though, I'm just learning.)

I think that the solution would be to separately license the VM and the compiler for my language, as "the official implementation", and then license the design document as the language itself.

What exactly am I missing here?

share|improve this question
Re (1): A language spec isn't software, so FOSS doesn't apply. Also, if I came across a language whose author attempted such a thing, for whatever purpose, I'd be extremely cautious (that is to say, I'd probably not use it at all). It reeks of control addiction, mistrust, and poor knowledge of legal issues. –  delnan Dec 8 '12 at 21:06
I'm a little at a loss as to what your end-goal is here. Maybe if we knew that, we could help you fill in the gaps as to how to achieve it. Also would be useful to know who your target market is. –  pdr Dec 8 '12 at 21:41
Wait, how does labeling anything reek of control addiction, @delnan? Or were you referring to copyrighting a spec? AFAIK, copyrighting isn't inherently evil, it doesn't have to be restrictive at all. –  jco Dec 8 '12 at 22:40
I guess I will keep the spec in the public domain then. –  jco Dec 8 '12 at 22:54
I am not a lawyer, but copyrighting a document (even if it specifies a language) is not copyrighting a language. For instance, I do use copyrighted dictionnaries, and I do speak French without violating them. –  Basile Starynkevitch Dec 8 '12 at 23:01
show 12 more comments

4 Answers

up vote 12 down vote accepted


You can't copyright a programming language no more than you can copyright a spoken language. You can license a particular implementation of the language and even sell that compiler much how Borland did with Delphi for many years.

Many languages today have a BDFL (Benevolent Dictator for Life) who determines what goes into the language and what doesn't. Python, Ruby, and Perl are all examples of that.

Other languages have officially designed standards by one of several standards boards, typically ANSI, ECMA, or ISO. Examples include C, C++, and Javascript.

Some languages fall into murkier areas due to politicking between companies. Java is an example because Microsoft sits on some of the standards boards.

Some languages move from one to another, typically from BDFL to Standardized, C is a good example.

Depending on the specification of the language, some compiler writers may implement different features in different ways (CPython vs PyPy for example) or add features (Microsoft C++ vs GNU C++ or MySQL vs PostGreSQL vs SQL Server)

share|improve this answer
Loglan is a precedent for the non-copyrightable status of constructed languages. Lojban is effectively an open reimplementation of Loglan. On the other hand, Sun sued Microsoft for their Visual J++ implementation of Java… –  Jon Purdy Dec 8 '12 at 21:15
@JonPurdy: With Java, it's a trademark issue, not a copyright issue. Look at how LiveScript became Javascript, while it was in Sun/Netscape's combined interests, later Microsoft released JScript to show similarity while avoiding trademark issues, and then later everyone agreed to ECMAScript as a common name. –  pdr Dec 8 '12 at 21:31
@JonPurdy,@pdr I think there were also issues of contract law in the dispute between Sun and Microsoft. Microsoft had licensed JVM technology from Sun and part of the license was agreeing not to produce non-standard implementations of Java. –  Charles E. Grant Dec 8 '12 at 22:40
@pdr As far as I can remember there was a very precise specification a what a Java implementation should provide (including a few thousand tests that an implementation should pass). Microsoft was sued because they had a non-standard implementation (probably to lock-in users by distributing applets that would only work with Internet Explorer). After the strategy of distributing a non-standard implementation of Java failed, Microsoft went on to create C#. –  Giorgio Dec 9 '12 at 2:18
@Giorgio - precisely. What Sun was objecting to was MSFT calling their language Java while making significant changes (to lock it to MSFT's platform) essentially they were producing a counterfeit Java –  Martin Beckett Dec 9 '12 at 3:45
show 5 more comments

Any attempt to restrict / control / own a language is doomed to failure. In order for a language to become widely used, people must feel a) that it solves a problem better than some existing, established language, and b) they are comfortable that they won't suddenly be on the wrong end of a license / law suit. If they think that that is even possible, they will go elsewhere.

I offer the absolute Tragedy of Java, as performed by Larry Ellison (AKA Oracle) and Google. Ellison performed a global-scale legal faceplant that accomplished 2 things:

  1. He showed the world that he would sue anyone he thought he could get money from, and
  2. He guaranteed that future developments that were not absolutely already tied to Java would choose anything other than Java.

Google didn't just win this lawsuit, they eviscerated Oracle's pathetic claims of patent and copyright. After this, no one I know will place any faith whatsoever in any "open source technology" that has Oracle's fingerprints on it (think: MySQL).

If you want, you can skip the developer-centuries behind Java and go straight to being ignored ... just have all developer's sign a contract before they can use your new language.

share|improve this answer
+1 for making it perfectly clear. You hit the nail with your 2nd point about Java. This has been a major factor in deciding whether to keep on using Java or create a similar language myself. Though, I don't really expect people to use it, as I have said, it's for personal and educational purposes. But, I'd like to keep my options open. –  jco Dec 9 '12 at 12:59
add comment

You could write a grammar for your language and assert your copyright over that. Of course, that wouldn't protect you against someone writing a different grammar that described the same language.

My biggest question would be "why would you want to". After all, you probably want people to adopt your language. If someone else claimed to have created it, then simply having a good web presence would be enough to enable you to call them a liar.

As others have noted, if your main goal is to prevent others from stealing the name of your language, a trademark would be more useful.

share|improve this answer
Writing a grammar for the language would still not protect it. The only thing it would do, is stop someone else re-writing the grammar in a similar way to you. I could write a grammar for the English language, that wouldn't then stop you from being able to post on SE though. –  Gavin Coates May 17 at 12:05
Gavin - I wrote.... "that wouldn't protect you against someone writing a different grammar that described the same language." I hope this makes clear that such a copyright would not protect the language, only that way of describing the language. Still - it might make a person feel better. –  Dominic Cronin May 17 at 15:14
add comment

There have been different answers to this question over time:

In 2012, a similar question was answered "you cannot" in the Oracle v.s. Google case over the use of the Java API in Android, and a similar answer was given in the case of WPL's implementation of the SAS programming language in their own product. The rationale for this answer was that interopability between different implementations of a language requires copying of the syntax of a programming language, and thus doing so should be allowed under "fair use" rules.

In 2014, however, the US court of appeals decided that the just legal answer was indeed "yes, you can", on the grounds that to provide interopability (or not), and under what rules is at the sole discretion of the original copyright holder. In this most recent interpretation, if someone does not want you to be compatible with their programming language, API or other interface specification, they have every right to stop you.

In a nutshell, as of 2014 it is probably fair to assume: yes, a programming language (its syntax, structure and sequence of language constructs) can be copyrighted

Note that copyright law is subject to local interpretaton and that rules in your country may differ. If in doubt consult a lawyer...

(removed the rest of the argument, see history)

Disclaimer: IANAL

share|improve this answer
Annnddd...this ruling was just overturned. Oracle appelaed, and this time the judges weren't programmers. –  jmoreno May 11 at 16:04
@jmoreno thanks for pointing this out. updated the answer to reflect this new development... –  miraculixx May 17 at 9:55
Just want to say, not a lawyer or a psychiatrist, just a programmer, but the 2014 ruling seems borderline insane to me. It's a bunch of commands! –  jmoreno May 17 at 18:21
add comment

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.