Obviously something as simple as int i = 0; or for (int i = 0; i < 10; i++) can't be copyrighted, but an entire function could be. Where is the line between copyrightable and uncopyrightable?

  • This is a legal question, and if there was a functioning Software Law site should go there. This is also one of those details of copyright that can vary between countries, so specifying a jurisdiction or asking for differences would be a good idea. Commented Mar 2, 2011 at 15:26

2 Answers 2


In order to be copyrighted, a something must be an original work of authorship fixed in a tangible medium of expression. See 17 USC 102. The originality requirement is going to be key when talking about code. Your code must do something. I'm not sure that the courts have ever decided this particular question, but basic algorithms are not likely to suffice. You need a program of some sort that does something meaningful.

  • Note that this means that code required to implement an interface of some kind (like an ABI or API) is uncopyrightable by any standard. (IANAL, but this is what the Copyright people tell me.)
    – greyfade
    Commented Mar 2, 2011 at 6:42
  • +1 - but last time I checked, people seemed to consider all those "I can call that library too" programs to be copyrighted. Hard to call that meaningful, but an implementation of a basic algorithm non-meaningful. There are details in how you implement a basic algorithm that are significant.
    – user8709
    Commented Mar 2, 2011 at 6:43
  • @greyfade - yet presumably the API itself is copyrightable? Hard to separate that from the API documentation, but there is a clearly meaningful design issue involved.
    – user8709
    Commented Mar 2, 2011 at 6:45
  • @Steve314: Yes, but I'm speaking specifically of the public interface. The code that is required for interoperability and/or compatibility. The functionality of the library is copyrightable, but its API is not. Sorry I wasn't more clear on that.
    – greyfade
    Commented Mar 2, 2011 at 7:27
  • @greyfade - actually, I think your reply translates as "no". I thought that things like choosing good function names, deciding what goes in what struct etc would be covered by copyright. Maybe it depends on the country (and maybe this explains ReactOS, Wine, the MinGW Win32 headers, ...).
    – user8709
    Commented Mar 2, 2011 at 15:14

IBM copyrighted a mainframe program called IEFBR14 which was originally 1 machine language instruction. Amusingly this program would have the highest defect per LOC ever. Wikipedia has a more detailed description.

  • 5
    Just because a copyright was applied for and received doesn't mean it would hold up on court challenge. Commented Mar 2, 2011 at 15:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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