Programming Language – Definition and Copyright Process

legallicensingprogramming-languages

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?

Best Answer

Disclaimer.IANAL();

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)

Related Topic