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.

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?

share|improve this question
    
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. –  David Thornley Mar 2 '11 at 15:26
add comment

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.

share|improve this answer
    
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 Mar 2 '11 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. –  Steve314 Mar 2 '11 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. –  Steve314 Mar 2 '11 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 Mar 2 '11 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, ...). –  Steve314 Mar 2 '11 at 15:14
add comment

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.

share|improve this answer
5  
Just because a copyright was applied for and received doesn't mean it would hold up on court challenge. –  David Thornley Mar 2 '11 at 15:28
add comment

Your Answer

 
discard

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.