1

I know the answer is probably no, but I'm confused about something. The underlying algorithm is never copyrightable. So as long as you "learn from the code" someone else has wrote, and re-implement it, you are allowed to reuse what you learned. But isn't this the same as making a few changes to the source code, i.e. reordering things, changing names etc.? So does this mean running source code through a code obfuscater would avoid copyright infringement issues? I know it's a strange question, but I'm serious.

I'm talking about small portions of code, less than 100 lines, not whole programs.

I ask this question after having read Does copyrighted code protect intellectual property rights on novel algorithms it implements? and Algorithm (pseudo)code in academic papers -- what is the copyright/license status?

  • Fewer than 100 lines does not preclude it from copyright. A whole program can be as few as 1 line. Are you reimplementing an algorithm or running code through a translator or obfuscator? The questions you linked to are about reimplementing, not obfuscating. – Brandin Nov 14 '17 at 12:27
  • @Brandin my point is what's the difference between re-implementing it and running it through an obfuscator? If the requirement to not infringed on copyright is to make changes so that it's not a copy and paste, both achieve this result. – user14343 Nov 14 '17 at 12:53
  • If you take an algorithm and re-implement it as your own creative work without copying someone else's copyrighted work, that is not copying. If you take someone's copyrighted work and run it through an obfuscator, that is copying or perhaps a derivative work. If that is your question, clarify. – Brandin Nov 14 '17 at 13:15
  • 1
    There is probably some gray area in the case of someone who reads a program's source code to learn how it works and then re-implements it. Whether the new implementation infringes the copyright in the original work would be a matter for a court to decide. But the obfuscator creates a work that is directly derived from the original; it's not at all analogous to learning an algorithm and then making a new implementation of it. – phoog Nov 14 '17 at 20:18
  • @Brandin but the end result is the same. If you re-implement it, you still need to use the same algorithm, so what you're really changing are things like the variable names. And that's what an obfuscator does. – user14343 Nov 14 '17 at 23:25
4

No, it's still copyright infringement. When you modify a copyrighted work in any way, you generate a derivative work which you are not allowed to distribute without the permission of the original copyright holder.

0

So as long as you "learn from the code" someone else has wrote, and re-implement it, you are allowed to reuse what you learned. But isn't this the same as making a few changes to the source code, i.e. reordering things, changing names etc.?

Not, it is not the same. In practice, to make your re-implementation not infringing copyright, it needs to be written from scratch without copying the original code.

It might be indeed difficult to write an implementation of a fewer than 100-lines algorithm that would not look copied and re-shuffled original. But if you do it as if you have never seen the original but have been taught the algorithm only, you'll make it. A definitive way to make it is to explain the algorithm to somebody else who won't have access to the original, and ask them to code it.

So, to avoid doubt, running code through a code obfuscater will produce derivative work, which means copyright infringement issues cannot be avoided this way.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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